如何指定 setup.py 在安装过程中需要的依赖项?

Tit*_*now 8 python setuptools setup.py

在某些情况下setup.py需要导入一些额外的模块,例如:

from setuptools import setup
import foo

setup(
    # e.g. a keyword uses `foo`
    version=foo.generate_version()
)
Run Code Online (Sandbox Code Playgroud)

如果foo没有安装,执行setup.py会因为ImportError.

我曾尝试使用setup_requires,例如setup_requires=['foo'],但它没有帮助。

那么如何指定这种依赖关系呢?

Tos*_*sha 12

pyproject.toml允许指定自定义构建工具:

[build-system]
requires = [..., foo, ...]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)


Tit*_*now 6

我想出了一个技巧 \xe2\x80\x94 调用pip来安装依赖项setup.py

\n\n
import pip\npip.main([\'install\', \'foo\', \'bar\'])    # call pip to install them\n\n# Now I can import foo & bar\nimport foo, bar\nfrom setuptools import setup\n\nsetup(\n    ...\n)\n
Run Code Online (Sandbox Code Playgroud)\n


phd*_*phd 5

中所需的依赖项setup.py无法在 中指定setup.py。您必须在运行之前安装它们python setup.py

pip install -r requirements.txt
python setup.py install
Run Code Online (Sandbox Code Playgroud)