python环境的离线安装

使用 pip 在线安装依赖包如此便捷,尤其是配置了镜像源的情况下,为什么会有离线安装这样的需求?

在版本更新很快的现如今,两年前部署的工作环境已经是“古董”级别的了,此时,若是有调试bug的需求,就需要完整的克隆生产环境,如果使用pip安装,版本问题会造成很大的困扰,即使使用requirement.txt,也还是会有某一模块找不到或版本不匹配(至少我遇到过),这里记录一下,下载当前环境的所有whl安装包的方法和离线安装的操作(当出现网络异常时,这个方法可以暂时补救)

一·相关指令

首先,记录操作过程中所用到的几个指令。

1.pip freeze 以requirements的格式列举已经安装的依赖包

# pip freeze 

D:\workon_home
(quickstart) $ pip freeze --help

Usage:
  pip freeze [options]

Description:
  Output installed packages in requirements format.
  按照requirements的格式,输出已安装的依赖包
  packages are listed in a case-insensitive sorted order.
  安装包的名称是一大小写不敏感的字母顺序进行排列的

2.pip download 安装包下载


(quickstart) $ pip download --help

Usage:
  pip download [options] <requirement specifier> [package-index-options] ...
  pip download [options] -r <requirements file> [package-index-options] ...
  pip download [options] <vcs project url> ...
  pip download [options] <local project path> ...
  pip download [options] <archive url/path> ...

Description:
  # 通过以下途径下载依赖包
  Download packages from:

  - PyPI (and other indexes) using requirement specifiers.
  - VCS project urls.
  - Local project directories.
  - Local or remote source archives.
  
  # pip 同样支持通过requirement文件进行下载,这种方式使得下载整个环境变得方便快捷
  pip also supports downloading from "requirements files", which provide
  an easy way to specify a whole environment to be downloaded.

3.安装离线包


pip install --no-index --find-links=packages_path -r requirements_file_path 


# 忽略依赖包的网络路径,仅仅从--find-links参数所提供的路径进行安装
--no-index               Ignore package index (only looking at --find-links URLs instead).

# 如果url所指向的是一个html网页,则将其中指向tar.gz或whl文件的链接进行下载并安装;如果使用的是本地文件夹或文件夹,则安装此文件或文件夹里面的所有的文件;不支持VCS链接
-f, --find-links <url>   If a URL or path to an html file, then parse for links to archives such as sdist(.tar.gz) or wheel (.whl) files. If a local path or file:// URL that's a directory,  then look for archives in the directory listing. Links to VCS project URLs are not supported.

 二·操作步骤

在开始之前,说明一下,执行安装包列表输出和安装包下载的是指已经部署好的环境,而且还得是联网的,只有安装的时候可以是离线的。

1.首先,输出安装包的列表与对应的版本号,即requirements格式,输出到文件

2.下载reqirements文件中的依赖包到指定文件夹

3.在需要安装环境的机器上执行安装指令,将安装路径指向已下载安装包的文件夹

# 查询安装包列表,并将结果写入requirements.txt文件
pip freeze > requirements.txt

# 下载requirements.txt文件指定的依赖包,并保存到当前目录的env_packages文件夹下
pip download -r requirements.txt  -d  ./env_packages

# 请注意,这一步操作在您的调试机器上执行
# 指定安装包的文件夹位置,和安装包列表文件requirements.txt
pip install --no-index --find-links=d:\workon_home\env_packages -r d:\workon_home\requirements.txt

最后,如果您在操作过程中,遇到下载进度慢的问题,您可参考 pip换源 这篇文章,而且,离线安装不仅仅在于克隆“古董级别”的环境,也可以是您在部署开源项目时,由于您的机器可能无法联网,您可以在别的地方下载之后,用于离线安装,只要从第二步开始执行就好。

以上就是离线安装的操作步骤,如有错误之处,欢迎您批评指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值