如何解决如何使用pip下载可用的Windows二进制文件以及所有其他源文件
不,根据pip文档,这样的选项不存在:
--only-binary <format_control>
:请勿使用源程序包。可以多次提供,每次都增加到现有值。接受:all:禁用所有源软件包,:none:清空集合,或接受一个或多个软件包名称,并且它们之间用逗号分隔。如果没有二进制分发包,则在使用此选项时将无法安装。
您可以在一个小的脚本中用一个条件来达到预期的效果,也许是这样的(尽管这只是一个草图,但是我不是Python专家):
#!/usr/bin/env python3
import subprocess
cmd = ['pip3',
'download',
'ipython',
'--platform',
'win_amd64',
'-d py_packages_20180222/',
'--only-binary=:all:']
result = subprocess.run(cmd)
if result.returncode != 0:
print("oh noes")
# put here what should happen if the download of the binaries fails
解决方法
我必须管理两个单独的Python设置,一个在具有Internet连接的Linux机器上,一个在离线Windows机器上。对于给定的一组必需软件包,我想在Linux机器上下载必要的文件,将它们传输到Windows机器并在此处安装。
预期的工作如下:
pip3 download virtualenv --platform win_amd64 -d py_packages_20180222/ --only-binary=:all:
该文件virtualenv-15.1.0-py2.py3-none-
any.whl
将下载到所需位置,并准备传输。但是,如果pip找不到二进制文件,则会产生错误:
pip3 download ipython --platform win_amd64 -d py_packages_20180222/ --only-binary=:all:
Could not find a version that satisfies the requirement simplegeneric>0.8 (from ipython) (from versions: )
No matching distribution found for simplegeneric>0.8 (from ipython)
由于设置--only-
binary=:all:
,这是预期的输出,但是这不是我想要的输出。在这种情况下,我想pip
下载源代码(带有警告)并继续。我本质上是在寻找pip
选择--only-
binary=:if_available:
。是否存在?
编辑: 不,不是。感谢接受的答案,我能够使用以下bash脚本找到解决方案:
#!/usr/bin/env python3
import subprocess
pkges = ['virtualenv','ipython']
for pkg in pkges:
cmd = ['pip3','download',pkg,'--platform','win_amd64','-d py_packages_20180222/','--only-binary=:all:']
result = subprocess.run(cmd)
if result.returncode != 0:
print("No binary found for pkg. Downlaoding source code instead")
cmdalt = ['pip3','-d py_packages_20180222/']
subprocess.run(cmdalt)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。