pip:将依赖项下载到特定平台,包括非二进制文件

Joe*_*oey 9 python installation cross-platform pip

我正在尝试将paramikoLinux主机的依赖项下载到无法访问Internet的Windows目标。

阅读pip文档上的示例后,我习惯于执行以下命令,以便将依赖项递归下载到64位Windows平台:

pip3 download --only-binary=:all: --platform win_amd64 --implementation cp paramiko
Run Code Online (Sandbox Code Playgroud)

能够递归下载依赖项,直到到达pycparser。由于使用了该--only-binary=:all:标志,这并不奇怪。是- 传递pip标志时强制使用此标志--platform

ERROR: --only-binary=:all: must be set and --no-binary must not be set (or must be set to :none:) when restricting platform and interpreter constraints using --python-version, --platform, --abi, or --implementation.
Run Code Online (Sandbox Code Playgroud)

终端产生以下输出:

Collecting paramiko
  Downloading paramiko-2.3.0-py2.py3-none-any.whl (182kB)
    100% |????????????????????????????????| 184kB 340kB/s 
  Saved ./paramiko-2.3.0-py2.py3-none-any.whl
Collecting pynacl>=1.0.1 (from paramiko)
  Using cached PyNaCl-1.1.2-cp35-cp35m-win_amd64.whl
  Saved ./PyNaCl-1.1.2-cp35-cp35m-win_amd64.whl
Collecting cryptography>=1.5 (from paramiko)
  Using cached cryptography-2.0.3-cp35-cp35m-win_amd64.whl
  Saved ./cryptography-2.0.3-cp35-cp35m-win_amd64.whl
Collecting pyasn1>=0.1.7 (from paramiko)
  Using cached pyasn1-0.3.5-py2.py3-none-any.whl
  Saved ./pyasn1-0.3.5-py2.py3-none-any.whl
Collecting bcrypt>=3.1.3 (from paramiko)
  Using cached bcrypt-3.1.3-cp35-cp35m-win_amd64.whl
  Saved ./bcrypt-3.1.3-cp35-cp35m-win_amd64.whl
Collecting cffi>=1.4.1 (from pynacl>=1.0.1->paramiko)
  Using cached cffi-1.11.0-cp35-cp35m-win_amd64.whl
  Saved ./cffi-1.11.0-cp35-cp35m-win_amd64.whl
Collecting six (from pynacl>=1.0.1->paramiko)
  Using cached six-1.11.0-py2.py3-none-any.whl
  Saved ./six-1.11.0-py2.py3-none-any.whl
Collecting asn1crypto>=0.21.0 (from cryptography>=1.5->paramiko)
  Using cached asn1crypto-0.22.0-py2.py3-none-any.whl
  Saved ./asn1crypto-0.22.0-py2.py3-none-any.whl
Collecting idna>=2.1 (from cryptography>=1.5->paramiko)
  Using cached idna-2.6-py2.py3-none-any.whl
  Saved ./idna-2.6-py2.py3-none-any.whl
Collecting pycparser (from cffi>=1.4.1->pynacl>=1.0.1->paramiko)
  Could not find a version that satisfies the requirement pycparser (from cffi>=1.4.1->pynacl>=1.0.1->paramiko) (from versions: )
No matching distribution found for pycparser (from cffi>=1.4.1->pynacl>=1.0.1->paramiko)
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题?我是否必须手动安装非二进制软件包(及其依赖项)?

谢谢,乔伊。

sor*_*rin 1

您有两个选择:

  1. 在同一平台上运行下载操作(注意要相同
  2. 修复主机上的互联网访问

不要尝试其他奇特的方法,否则你会把自己困在脚下:一些依赖项需要编译!