[英]Install using pip a development version of a python package but with stable dependencies
pip install
命令默认安装 python package 的最新稳定版本( PEP426指定的稳定版本)
pip install
命令的标志--pre
告诉 pip 还考虑 python 软件包的发布候选和开发版本。 据我所知, pip install --pre packageA
它将安装packageA
的开发版本,但也会安装其所有依赖项的开发版本。
是否可以使用 pip 安装 package 的开发版本,但安装其所有依赖项的稳定版本?
我尝试过的一件事是安装 package 的稳定版本(具有稳定的依赖项),然后重新安装没有依赖项的开发版本: pip install packageA pip install --pre --no-deps --upgrade --force-reinstall packageA
的问题是,如果packageA
的开发版本添加了新的依赖项,则不会安装。
我错过了什么? 谢谢!
我编写了一个脚本来执行此操作( pip_install_dev_and_stable_of_dependencies.py
):
#!/usr/bin/env python
import os
import sys
def get_installed_packages():
with os.popen('pip freeze') as f:
ss = f.read().strip().split('\n')
return set(i.split('=')[0].strip().lower() for i in ss)
def install_pre_with_its_dependencies_stable(package):
already_installed_packages = get_installed_packages()
os.system('pip install --pre ' + package)
dependencies = ' '.join(
p for p in get_installed_packages()
if p not in already_installed_packages | set([package])
)
os.system('pip uninstall -y ' + dependencies)
os.system('pip install ' + dependencies)
def main():
for p in sys.argv[1:]:
install_pre_with_its_dependencies_stable(p)
if __name__ == '__main__':
main()
用法:
(venv)$ chmod +x pip_install_dev_and_stable_of_dependencies.py
(venv)$ ./pip_install_dev_and_stable_of_dependencies.py pandas
这应该可以解决问题。
pip install --pre --no-deps package
--pre
的情况下再次运行以安装稳定的依赖项: pip install package
您应该能够执行以下操作
pip install --upgrade "package>=0.0.1.dev"
这应该安装一个新的dev
版本而不安装其他包的预发布依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.