python环境的离线安装

tech2024-08-17  39

使用 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换源 这篇文章,而且,离线安装不仅仅在于克隆“古董级别”的环境,也可以是您在部署开源项目时,由于您的机器可能无法联网,您可以在别的地方下载之后,用于离线安装,只要从第二步开始执行就好。

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

最新回复(0)