【Python】pip离线安装各种库
一、前言
为什么有离线安装这种需求呢?在高度注重信息安全的今天,很多时候办公都是在独立的网络环境中称作内网,无法访问外部网络即外网。当内网开发需要某个库时,安装是一件痛苦的事情,下载了需要的库后还要下载一些列依赖库,而依赖库往往是在安装中才发现的,这样就形成了反反复复的外网找库传内网安装的操作。有没有更好的办法呢?当然有!
二、外网下载库
正常情况下我们在外网安装所需库都是直接执行下面的pip命令:
pip install PyQt5 # 以安装PyQt5为例
如果仅下载不安装就可以使用下面的命令:
pip download PyQt5 -d D:/pylibs # 将PyQt5下载到指定pylibs目录中
如果同时想下载多个库,并且需要指定版本的话可以创建一个requirement.txt文件并在里面加入如下的内容:
setuptools==1.14.0 django==1.8.11 xlrd2=1.2.2
然后执行pip下载命令:
pip download -d D:/pylibs -r requirement.txt
这样我们所需的库和相关依赖的库都会自动下载到指定的目录里面,如果不加-d参数,会默认下载到执行命令的目录中。然后我们将这个目录和requirement.txt一起打包传入内网即可。注意这里有一个前提,就是外网Python版本和内网Python版本是一致的。
三、内网安装
内网安装步骤就比较简单,先是非requirement.txt文件安装的指令如下:
pip install PyQt5 --no-index --find-links=D:/libpath
采用requirement.txt文件安装的指令如下:
pip install --no-index --find-links=D:/libpath -r requirement.txt
这样一来就可以很方便的在内网安装库了,而且依赖库也会自动安装。--no-index 是必须的,如果不加是安装不了的。--find-links就是指定传入内网后的库放的路径。
四、后记
要想安装成功内外网的Python环境必须是一致的,还有就是最好不要跨系统使用这种方式,里面会有许多的坑需要去填。
欢迎微信搜索"游戏测试开发"关注一起沟通交流。