如果 setup.py 有依赖项怎么办?



如果我的 pip 可安装包中的setup.py有依赖项,我该怎么办?

例如,在setup.py中,您将看到:

from pipenv.project import Project
from pipenv.utils import convert_deps_to_pip

这样我就可以解析我的 pip 包依赖项:

pfile = Project(chdir=False).parsed_pipfile
requires = convert_deps_to_pip(pfile['packages'], r=False)

并将它们交给setup().

setup(
...
install_requires = requires,
...)

但是,我不能假设此 pip 包的用户已安装pipenv。 如果我pipenv添加为依赖项,那么setup.py将尝试在通过setup.py实际安装之前import pipenv

如果您尝试在干净的环境中安装我的软件包,会发生什么情况:

from pipenv.project import Project
ModuleNotFoundError: No module named 'pipenv'

如果我在运行之前pip install pipenv,然后在项目根目录中pip install -e ./,则安装可以正常工作。

我想不出一个好的解决方案...

我找到了答案。 我会发布它,以防有人在这里结束。
答案在这里:https://pipenv.kennethreitz.org/en/latest/advanced/#pipfile-vs-setup-py

Pipfile适用于应用程序。
但是,库(包)仍然可以从setup.py生成Pipfile.lock

$ pipenv install -e .

相关内容

  • 没有找到相关文章

最新更新