在封闭网络中的计算机上安装软件包

Installing packages on computer in a closed network

我无法在无法访问互联网的计算机上使用 pip 安装某些软件包。 我从源文件中全新安装了 python3.10。 这是命令我 运行:

pip3.10 install --no-index --find-links=/path/to/my/local/python-libs --no-cache-dir virtualenv

在目录 /path/to/my/local/python-libs 中,我放了软件包发布的 zip 文件:

我已经尝试了 --use-deprecated=legacy-resolver 选项,但它也不起作用。 错误信息是:

  Processing ./python-libs/setuptools-62.1.0.zip
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
    Installing backend dependencies: started
    Installing backend dependencies: finished with status 'done'
    Preparing metadata (pyproject.toml): started
    Preparing metadata (pyproject.toml): finished with status 'done'
  Discarding file:///home/user/python-libs/setuptools-62.1.0.zip: Requested setuptools>=41.0.0 from ile:///home/user/python-libs/setuptools-62.1.0.zip has inconsistent version: filename has '62.1.0', but metadata has '62.1.0.post20220423'
  ERROR: Could not find a version that satisfies the requirement setuptools>=41.0.0 (from versions: 62.1.0)
  ERROR: No matching distribution found for setuptools>=41.0.0

找了一整天的原因,不知道是新的pip解析器还是PEP517引起的,不知道。

我想如果你想在没有互联网的情况下安装 python 模块,因为你已经下载了它们,首先要用以下内容制作一个 requirements.txt 文件。

setuptools==62.1.0
virtualenv==20.8.1
wheel==0.37.1

我刚刚从你的下载文件中获取了版本号

然后转到有 requirements.txt 的目录 运行

pip install -r requirements.txt --no-index --find-links --find-links=/path/to/my/local/python-libs

注意添加 -r requirements.txt 允许您控制 pip 包的版本号。

如果这不能解决问题,那么您下载的二进制文件可能有问题,请尝试重新下载它们,但这次使用 requirements.txt

pip download -r requirements.txt -d binaries

这会将 requirements.txt 请求的二进制文件和版本下载到名为 binaries

的文件夹中

然后,将新的二进制文件移动到所需的文件夹 (/path/to/my/local/python-libs) 后,只需在离线计算机上再次尝试第一个命令即可。