导出依赖包名
本文详细介绍了在跨平台(如从 Windows 为 Linux 准备)或同平台环境下,管理 Python 项目依赖的完整流程。主要内容包括:
- 导出依赖包名 :使用
pipreqs或pip freeze生成requirements.txt文件。 - 下载对应的安装包 :
- 跨平台下载:在 Windows 上为 Linux 目标平台下载指定 Python 版本和 ABI 的 wheel 包。
- 同平台下载 :直接使用
pip download下载依赖包到本地目录。
- 安装依赖包 :
- 安装到全局 Python 环境。
- 安装到虚拟环境(venv),支持直接调用虚拟环境内的 pip 或先激活环境再安装。
- 后续操作:查看已安装的包,以及在 Linux 上使用指定虚拟环境的 Python 运行脚本。
通过上述步骤,可以实现依赖包的离线部署和环境一致性保证。
Python 脚本生成 requirements.txt
sh
pipreqs ./ --use-local --force
Python 项目中生成 requirements.txt
sh
pip freeze > requirements.txt
下载对应的安装包
1. 在 Windows 上下载 Linux 对应平台的 Python 依赖包
注意,先把文件 requirements.txt 里面的 Python 包的版本限定去除,让它自动选择版本,否则可能找不到依赖。
sh
pip download -r requirements.txt -d packages --platform manylinux2014_x86_64 --python-version 39 --implementation cp --abi cp39 --only-binary=:all:
| 参数 | 含义 | 解释 |
|---|---|---|
download |
下载包,不安装 | 只把依赖下载下来 |
-r requirements.txt |
根据 requirements.txt 下载依赖 | 下载所有依赖及其子依赖 |
-d packages |
下载到指定目录 | 所有 .whl 文件放到 packages/ 目录 |
--platform manylinux2014_x86_64 |
指定目标平台 | 下载适用于 Linux x86_64 的包,而不是 Windows 包 |
--python-version 39 |
指定 Python 版本 | 下载适用于 Python 3.9 的 wheel |
--implementation cp |
指定 Python 实现 | cp = CPython(官方 Python) |
--abi cp39 |
指定 ABI | 下载与 CPython 3.9 ABI 对应的 wheel |
--only-binary=:all: |
只下载 wheel | 不下载源码包(tar.gz) |
2. 同平台系统下载 Python 依赖包
同平台、同版本,直接下载即可。
sh
pip download -r requirements.txt -d packages
安装依赖包
1. 安装到全局环境
sh
pip install --no-index --find-links=packages -r requirements.txt
2. 安装到虚拟环境venv
a. 直接运行虚拟环境的 pip 命令安装
sh
/etc/python/venv/bin/pip install --no-index --find-links=packages -r requirements.txt
b. 安装到某个虚拟环境 (venv)
(1) 激活 venv
sh
source /etc/zabbix-python/venv/bin/activate
(2) 安装 requirements.txt 中列出的依赖包
sh
pip install --no-index --find-links=packages -r requirements.txt
查看已安装的包
sh
pip list
pip show pymssql
Linux 运行 py 脚本
需要指定对应环境的 Python 来运行脚本
sh
/etc/python/venv/bin/python /etc/python/scripts/db_check/xxxx.py