如何解决bdist 轮的引脚依赖项,同时保持未固定以进行开发
我打算将我的 Python 项目作为带有固定依赖项版本的 bdist 轮分发,以便对上游依赖项的更改不会破坏我的代码。但是,当有人安装我的项目的开发版本时,例如通过 pip install -e
,我希望引入最新版本的依赖项,以便我可以不断针对它们测试我的代码。
依赖项列在 setup.py
中:
from setuptools import setup
setup(
...
install_requires=["numpy","scipy","matplotlib"],)
我从项目根目录(包含 setup.py
的那个)创建轮子:
pip wheel . --no-deps
创建的轮子在安装后,还将安装最新版本的 Numpy、Scipy 和 Matplotlib。解压后的轮子的 MetaDATA
文件(pip 在安装时用来确定项目的依赖项)显示了这种情况:
...other Metadata...
Requires-dist: numpy
Requires-dist: scipy
Requires-dist: matplotlib
如果我更改 install_requires
中的 setup.py
以设置依赖项的显式版本(例如使用 install_requires=["numpy==1.20.0",...etc...]
),则创建的轮子的 MetaDATA
会改为列出:
...other Metadata...
Requires-dist: numpy (==1.20.0)
...other dependencies...
这会告诉最终用户机器上的 pip
获取 Numpy 1.20.0。这就是我想要的轮子,但是每当有人运行 pip install -e .
时,他们也会得到这些固定版本。
有没有办法以编程方式指定“开发”依赖项而不是“轮”依赖项?还是我一直在告诉人们手动运行 pip install -r unpinned-requirements.txt
和 pip install -e . --no-deps
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。