Py学习  »  Python

Python离线安装库,依赖,依赖,还是TM的依赖

Ai学习的老章 • 2 周前 • 49 次点击  

大家好,我是Ai学习的老章。

内网纯离线安装Python库,是件特别烦人的事。问题在于,当你信心满满地把一个库的.whl文件传进内网准备安装时,它会无情地告诉你缺少某个依赖。

当你费尽周折找到依赖B的whl也传进去安装,系统会告诉你,B还有一个依赖C,等你把C搞定,它可能还有依赖D、E、F...

这个过程就像俄罗斯套娃,一层又一层,永无止境。你来来回回在外网下载、往内网传输,一整天就耗在这上面了,心态爆炸。

比如我要安装openai、unsloth的库,它们每个依赖都打几十个,vllm的库,依赖100多个Python库。。。

那么,有没有一劳永逸的办法?

当然有!核心思想就是:在外网环境,一次性把目标库和它所有的“子子孙孙”依赖项全部下载下来!

终极解决方案:pip download

pip 不仅能 install,还有一个神器命令叫 download。它能只下载不安装,并且把所有依赖项都给你扒下来。

第一步:在外网机器上准备

找一台可以上网的电脑,确保它的操作系统Python版本和内网的生产环境尽量一致。

建议:用conda create 一个相同python版本的干净环境

这一点很重要,因为它决定了下载的whl文件是否兼容。

然后,创建一个文件夹,用来存放我们即将下载的所有库文件。比如 my_offline_packages

mkdir my_offline_packages

第二步:执行下载命令

假设我们要在内网安装 pandas 这个库。在可以上网的电脑上,打开命令行,进入刚才创建的文件夹的上一级目录,然后运行:

pip download pandas -d ./my_offline_packages

这条命令会做几件事:

  1. 解析 pandas 的所有依赖项(比如 numpy, pytz, six 等)。
  2. 下载 pandas 自身的 whl 文件。
  3. 下载所有依赖项的 whl 文件。
  4. 所有下载的文件全部保存在 my_offline_packages 文件夹里。

执行完毕后,你会看到这个文件夹里装满了各种 whl 文件,这就是我们需要的“全家桶”。

屏幕截图 2025-08-21 173738.png
屏幕截图 2025-08-21 173738.png

第三步:打包传输

把 my_offline_packages 这个文件夹整个打成一个压缩包(比如 my_offline_packages.zip),然后通过U盘、内部传输工具等方式,把它搬到内网的目标服务器上,并解压。

第四步:在内网服务器上安装

这是最关键的一步。进入内网服务器的命令行,使用以下命令进行安装:

pip install --no-index --find-links=./my_offline_packages pandas

让我们拆解一下这条神仙命令:

  • pip install pandas: 我们的目标还是安装pandas。
  • --no-index核心参数! 它的意思是告诉pip“不要去访问官方的PyPI索引(也就是不要上网)”。强制pip变成一个纯粹的离线工具。
  • --find-links=./my_offline_packages: 这个参数是告诉pip,“虽然我不能上网,但是你可以在本地的 my_offline_packages 这个文件夹里查找你所需要的所有安装包”。

执行这条命令后,pip会:

  1. 尝试安装 pandas
  2. 发现 pandas 需要依赖 numpy
  3. 由于有  --no-index,它不会去网上找。
  4. 根据 --find-links 的指引,它在 my_offline_packages 文件夹里找到了 numpy 的whl文件,于是自动安装它。
  5. 接着,它会用同样的方式,在本地文件夹里找到并安装所有其他的依赖。

整个过程行云流水,一步到位,再也没有烦人的“缺少依赖”提示了。

总结

面对Python的离线安装,不要再一个一个手动去下载依赖了。记住这个流程:

  1. 外网pip download -d
  2. 传输:把整个文件夹打包带走。
  3. 内网pip install --no-index --find-links=

从此告别依赖地狱,把宝贵的时间用在真正重要的事情上。


最后再推荐一个我正在学习的课程《RAG与Agent性能调优50讲》


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185906
 
49 次点击