setuptools_scm不工作与' pip install . ',如果在父文件夹中的.git



我在一个版本文件夹中有两个或多个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版本中默认启用它。有两种解决方案:

  1. 更新皮普:
pip install -U pip
pip install .
  1. 或直接使用该功能:
pip install --use-feature=in-tree-build .

相关内容

最新更新