离线安装python包及其依赖

文章讲述了在外网环境中通过pipdownload安装包时,需注意指定Python版本、平台和二进制选项。离线安装时需用--no-index和--find-links,以及如何处理no-build-isolation以解决缺失依赖的问题。特别提到了whl包和setuptools的特殊情况。
摘要由CSDN通过智能技术生成

总结

  1. 在外网环境下pip download需要的pkg或者 -r 指定的依赖文件。安装时注意约束操作系统,python版本和指定二进制选项,默认是当前download环境的python版本的操作系统。

  2. pip install --no-index --find-links=<dir| url> --no-build-isolation <pkg>

范例

可访问外网端执行命令(linux 服务器)

  1. pip download --python-version 3.11.4 --platform win_amd64 -d /Guido/py_dependence/pyautogui_pkg --only-binary=:all: pyautogui

    若发现找不到对应版本。可能是pyautogui没有维护到对应版本的python或者平台名下可用,导致pip找不到。

  2. 去除下载的约束(constraint) 如python版本和平台以及--only-binary=:all:,下载pyautogui。

    pip download -d path/to/save/pkg/and/depds/ pyautogui
  3. 进入到目录查看下载项对应的包的版本和平台,再通过pip download不能跨平台或python版本的包。

  4. 比如pyautogui的pillow依赖有指明python的版本和平台。

    pip download --python-version 3.11.4 --platform win_amd64 -d /data/jupyter_code/Guido/py_dependence/pyautogui_pkg --only-binary=:all: pillow
  5. 将下载好的包复制到目标机器(Windows系统)上,示例中是E:\pypkg\pyautogui

离线环境执行的命令

  1. pip install --no-index --find-links=E:\pypkg\pyautogui --no-build-isolation pyautogui

    1. --no-index 是不上网找包

    2. --find-links 是在哪里找包。可以指定多个目录。但是我指定了--find-links=F:\anaconda3\Lib\site-packages后依然会出现setuptools没有对应版本的错误,直到用了--no-build-isolation选项。

    3. --no-build-isolation 是不构建隔离的环境,防止在不存在所有必需的构建依赖项时运行构建。比如构建时说没有setuptools这种python3默认会安装的包。详情可参考链接1链接2的#9794

        注意!如果都是whl包则可以不用--no-build-isolation选项,比如pymupdf

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值