一、【背景】
在大多数公司尤其是金融、制造、科研类企业中,内网与外网是严格隔离的。
这就意味着:
- 内网开发机器 不能访问 PyPI,无法直接
pip install
; - 只能通过外网机器下载依赖包,再拷贝到内网使用;
- 复杂的依赖关系导致安装经常失败,开发体验很差。
比如:我所在的单位内网电脑全部离线。虽然我采用的是 Anaconda 环境,理论上可以把外网的包直接拷贝到内网 site-packages
目录下,但实际使用中问题很多:
- 很多包依赖其它子包,光拷贝主包没用;
- 一旦缺少依赖,运行就报错;
- 只能不停“试错 → 拷贝 → 再试 → 再拷贝”,效率极低。
因此,问题的关键是:如何一次性搞清楚一个包的所有依赖,并把它们一起搬到内网?
二、【常见思路与局限】
-
直接拷贝主包文件夹
- 方法:从外网机器上找到
site-pack
- 方法:从外网机器上找到