随着网络安全越来越受重视,很多企业的开发、测试和生产环境都已经跟互联网隔离,这就导致python无法在内网直接使用pip安装第三方包,离线安装成为必备技能。
适合场景:
适合临时安装一两个包的场景。
优缺点:
效率低,经常会遇到需要外部依赖包的情况。
适合场景:
需要批量安装第三方包,软件部署有明确的requirements文件的场景。
优缺点:
可以批量下载和安装,一次性解决一台服务器上安装多个包的问题。
Python包按照安装包的方式可以分为:wheel包、源码包(zip或tar.gz)、egg包。其中,wheel包和源码包比较常见,egg已经很少了。
wheel包的命名格式为:{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl。
名称 |
对应名称 |
解释 |
distribution |
mysql_connector |
包名 |
version |
2.1.6 |
版本 |
bulid tag |
备注标签 |
可省略 |
python-tag |
cp36 |
表示 cpython 3.6 版本 |
abi-tag |
cp36m |
abi Application Binary Interface应用程序二进制接口 |
platform |
win_amd64 |
platform 还可以是 any |
到达路径后根据不同文件后缀,操作如下:
pip install **.whl
例如:
pip install JPype1_py3-0.5.5.2-cp35-none-win_amd64.whl
下载模块包到安装地址(压缩文件zip或tar.gz),进行解压,到达指定位置进入模块文件夹,执行python setup.py install
例如:
先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package
easy_install packageName
easy_install package.egg
比如下载 django 1.8.11版本的包,requirements.txt的内容就是:
django==1.8.11
使用 pip freeze 会输出所有在本地已安装的包(但不包括 pip、wheel、setuptools 等自带包),若需要输出内容与 pip list 一致,需使用 pip freeze -all。
使用方法:
pip freeze > requirements.txt
适用场合:
由于 pip freeze 与 pip list 内容区别不大,所以,若想要用其作为工程依赖包列表,需要配合 Python 虚拟环境 virtualenv 使用。
例如:想将包放在\home\packs目录下
pip download -d \home\packs -r requirement.txt
pip install --no-index --find-links=\home\packs -r requirements.txt