如果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
将尝试通过import pipenv
实际安装之前setup.py
。
如果您尝试在干净的环境中点安装我的软件包,将会发生以下情况:
from pipenv.project import Project
ModuleNotFoundError: No module named 'pipenv'
如果我先运行pip install pipenv
,然后在项目根目录中pip install -e ./
,则安装成功。
我想不出一个好的解决方案...
答案 0 :(得分:0)
我找到了答案。如果有人在这里结束,我将发布它。
答案在这里:https://docs.pipenv.org/en/latest/advanced/#pipfile-vs-setup-py
Pipfile
适用于应用程序。
但是,库(程序包)仍然可以从Pipfile.lock
生成setup.py
。
$ pipenv install -e .