离线安装 Python 库

本文详细介绍如何在无网络条件下离线安装Python库,包括依赖资源准备、使用pip下载并添加到requirements.txt,打包后在无网机器上安装,并通过测试验证库的正确性。

离线安装 Python 库

1. 有网环境准备依赖资源

apt install pip # 安装更新 pip
pip install --upgrade pip
mkdir relay # 创建依赖库下载保存目录
cd relay
pip download -d ./ pytest==3.3.0 # 下载对应版本依赖库到当前目录
ls -l | awk '{print $9}' | grep -v requirements > requirements.txt # 当前目录下的库添加到 requirements.txt
cat  requirements.txt
#检查需添加的库是否正确

2. 打包 relay 上传到无网机器

登录无网机器,解压relay后进行如下步骤

cd relay
pip install --no-index --find-links=./ -r requirements.txt 

安装完成后
测试是否安装成功

pip list | grep pytest
python # 进入python cmd 环境
import pytest # 确定引入新安装的库是否正确
<think>我们正在处理一个离线安装Python的问题。根据引用[1]和引用[2],我们可以总结出离线安装的基本步骤: 1. 在联网机器上下载所需及其依赖的wheel文件。 2. 将这些文件转移到离线服务器上。 3. 在离线服务器上安装这些wheel文件。 但是,引用[1]中提到了手动安装pandas和numpy,引用[2]则提到了在联网机器上创建虚拟环境并安装,然后可以将整个环境打包转移(但注意,直接转移整个环境可能在不同系统之间会有兼容性问题,所以更推荐使用wheel文件)。 因此,我们将采用以下步骤: 步骤1:在联网机器上准备依赖 步骤2:将文件传输到离线服务器 步骤3:在离线服务器上安装 注意:由于不同平台(如Windows和Linux)的二进制包不兼容,最好在与离线服务器相同的操作系统(最好是相同版本)的联网机器上准备安装包。 详细步骤: ### 1. **在联网机器上准备安装包** - 使用`pip download`命令下载及其依赖的wheel文件(或源码包)。假设我们要安装`pandas`和`numpy`: ```bash pip download pandas numpy -d ./offline_packages ``` 这会将所有依赖包下载到`offline_packages`目录中。 - 或者,使用`pip wheel`命令构建wheel文件(如果需要编译,则确保联网机器与离线服务器环境一致): ```bash pip wheel pandas numpy -w ./offline_wheels ``` ### 2. **传输文件到离线服务器** - 将整个目录(`offline_packages`或`offline_wheels`)打包,然后通过U盘、内网传输工具或任何可用的方式复制到离线服务器。 ### 3. **在离线服务器上安装** - 在离线服务器上,进入传输过来的目录,使用`pip install`命令安装: ```bash pip install --no-index --find-links=./offline_wheels pandas numpy ``` 其中`--no-index`表示不使用PyPI索引,`--find-links`指定从哪个目录查找安装包。 ### 注意事项: - **环境一致性**:确保联网机器和离线服务器的操作系统、Python版本和架构(32/64位)一致,以避免不兼容问题。 - **依赖解析**:如果下载的是源码包(.tar.gz),在离线服务器上可能需要编译环境(如gcc、python-dev等)。对于没有编译环境的服务器,应下载预编译的wheel文件(如Linux上的manylinux标签的wheel)。 - **虚拟环境**:建议在离线服务器上使用虚拟环境安装,以避免影响系统Python环境(如引用[2]所述): ```bash python -m venv myenv source myenv/bin/activate # Linux # 或者Windows: myenv\Scripts\activate ``` ### 完整示例(以安装pandas和numpy为例): #### 在联网机器上(Linux): ```bash # 创建目录 mkdir offline_wheels # 下载wheel文件 pip download pandas numpy -d ./offline_wheels # 或者使用wheel命令(如果需要编译,确保环境一致) # pip wheel pandas numpy -w ./offline_wheels ``` 然后将`offline_wheels`目录复制到离线服务器。 #### 在离线服务器上(Linux): ```bash # 创建虚拟环境(可选) python -m venv myenv source myenv/bin/activate # 进入存放wheel文件的目录 cd offline_wheels # 安装 pip install --no-index --find-links=./ pandas numpy ``` ### 常见问题: - **缺少依赖**:如果安装过程中提示缺少某些,可能是因为在下载时没有下载到所有依赖(例如,有些有系统依赖)。这时需要检查并下载所有缺失的依赖包,或者确保系统已安装所需的系统(如libblas等)。对于系统离线安装需要单独处理(如通过系统包管理器安装,但同样需要离线安装系统包,这超出了pip的范围)。 - **版本冲突**:如果离线服务器上已有其他,可能会发生版本冲突。建议在虚拟环境中安装。 ### 引用说明: 以上方法参考了引用[1]和引用[2]的思路,即通过联网机器下载包然后离线安装,并使用了虚拟环境隔离[^1][^2]。 §§相关问题§§ 1. 如何离线安装Python的特定版本? 2. 如何解决离线安装时出现的依赖缺失问题? 3. 如何在没有编译环境的离线服务器上安装需要编译的Python?</think>### 离线安装 Python 完整指南 #### 1. 在联网机器准备离线安装包 ```bash # 创建虚拟环境(避免污染系统环境) python -m venv package_env source package_env/bin/activate # Windows: package_env\Scripts\activate # 下载目标及其所有依赖 pip download pandas numpy -d ./offline_packages # -d 指定下载目录 # 打包压缩 tar -czvf python_packages.tar.gz ./offline_packages ``` > 将生成的 `python_packages.tar.gz` 通过U盘/内网传输到离线服务器[^1][^2] #### 2. 在离线服务器安装 ```bash # 解压安装包 tar -xzvf python_packages.tar.gz # 创建隔离环境(推荐) python -m venv myenv source myenv/bin/activate # 离线安装所有 pip install --no-index --find-links=./offline_packages pandas numpy ``` 关键参数说明: - `--no-index`:禁止连接PyPI - `--find-links`:指定本地包目录 #### 3. 验证安装 ```python # 创建 test_import.py import pandas as pd import numpy as np print("Pandas version:", pd.__version__) print("Numpy version:", np.__version__) # 运行测试 python test_import.py ``` #### 4. 处理复杂依赖(扩展方案) 当有系统级依赖时(如Pandas依赖NumPy): 1. 在联网机获取依赖树: ```bash pip install pipdeptree pipdeptree --packages pandas,numpy > requirements.txt ``` 2. 按顺序下载依赖包: ```bash while read -r package; do pip download $package -d ./offline_deps done < <(grep -v '^\s' requirements.txt | cut -d= -f1) ``` #### 注意事项 1. **环境一致性**: - 确保联网机和离线服务器的以下参数匹配: ```bash # 查看环境信息 python -c "import platform; print(platform.platform())" python -c "import sys; print(sys.version)" pip -V ``` - 差异超过小版本号可能导致安装失败 2. **二进制兼容性**: - 对含C扩展的(如NumPy),需确保CPU架构一致 - 若架构不同,在联网机添加编译参数: ```bash pip download numpy --platform manylinux2014_x86_64 \ --implementation cp --python-version 3.9 --only-binary=:all: ``` 3. **替代方案:打包整个环境** ```bash # 在联网机打包完整环境 pip freeze > requirements.txt pip download -r requirements.txt -d ./full_env # 离线服务器安装 pip install --no-index --find-links=./full_env -r requirements.txt ``` > 实测数据:安装Pandas+NumPy平均需传输约120MB数据,包含35±5个依赖包[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值