我在一个版本文件夹中有两个或多个Python包:
.
├── .git
├── api
│ ├── mf_hub_api
│ │ └── __init__.py
│ └── setup.py
├── pkg
│ ├── mf_hub
│ │ └── __init__.py
│ └── setup.py
└── README.rst
从。/api和pkg python包pip install -e .
工作良好,但pip install .
给了我回溯:
mf_hub/pkg$ pip install .
Processing .../mf_hub/pkg
...
LookupError: setuptools-scm was unable to detect version for '/tmp'.
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Myconfig.py
::
mf_hub$ cat pkg/setup.py
from setuptools import find_packages
from setuptools import setup
requirements = """
pip
setuptools
wheel
setuptools_scm
"""
setup(
name="mf_hub",
setup_requires=["setuptools_scm"],
use_scm_version={
"write_to": "../version.txt",
"root": "..",
"relative_to": __file__,
},
packages=find_packages(),
test_suite="tests",
install_requires=requirements,
include_package_data=True,
zip_safe=False,
)
mf_hub$
临时的解决方法是什么?
我看到有一个与此相关的开放问题:https://github.com/pypa/setuptools_scm/issues/357
您必须使用in-tree-build
特性。在较新的pip版本中默认启用它。有两种解决方案:
- 更新皮普:
pip install -U pip
pip install .
- 或直接使用该功能:
pip install --use-feature=in-tree-build .