场景说明: 外网为 Windows(Python 3.11),内网为 Linux(系统默认 3.6,需使用 3.11)。本文将介绍如何在外网下载依赖包,并迁移至内网离线安装。

一、外网操作(Windows)

1. 创建虚拟环境

安装python3创建项目文件夹,创建虚拟环境,进入虚拟环境安装对应的依赖,防止不同项目依赖版本冲突

创建requirements.txt依赖文件,放入需要下载的包名

# 安装 virtualenv
pip install virtualenv

# 创建虚拟环境
virtualenv alinux_env

# 激活虚拟环境
alinux_env\Scripts\activate
激活失败的话使用Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned给用户永久授权

2.安装对应包

在项目根目录创建 requirements.txt,写入需要安装的包名(一行一个),例如:
# requirements.txt
numpy==1.24.3
pandas==2.0.1
requests==2.31.0
执行下载命令,将包及其依赖下载到指定目录:

pip download -r requirements.txt \
    -d alinux_packages \
    --platform manylinux2014_x86_64 \
    --python-version 311 \
    --only-binary=:all:
参数 说明
-r requirements.txt 指定依赖文件
-d alinux_packages 下载目标目录
--platform manylinux2014_x86_64 目标平台为 Linux x86_64
--python-version 311 目标 Python 版本 3.11
--only-binary=:all: 仅下载预编译的 wheel 包

3.打包上传 

将alinux_packages 目录压缩打包,传输至内网 Linux 环境: alinux_packages 目录压缩打包,传输至内网 Linux 环境,可以使用u盘等方式。

二、内网操作(Linux)

1. 创建虚拟环境

系统默认linux版本为3.6,安装版本为3.11,创建项目文件夹,使用3.11创建虚拟环境

# 使用 Python 3.11 创建虚拟环境
python3.11 -m venv venv

# 激活虚拟环境
source venv/bin/activate

2. 离线安装依赖


​​​解压 alinux_packages.zip 到项目目录,执行离线安装:

# 从本地目录安装(--no-index 禁止访问网络)
pip install --no-index -f alinux_packages -r requirements.txt
参数 说明
--no-index 禁用 PyPI 索引,纯离线安装
-f alinux_packages 指定本地包查找目录
-r requirements.txt 指定依赖文件

3. 验证安装

# 查看已安装的包列表
pip list

常见问题

问题 解决方案
下载时提示 No matching distribution 目标包可能无预编译 wheel,尝试去掉 --only-binary=:all: 并在内网编译
内网安装提示依赖缺失 在外网重新执行 pip download,确保子依赖全部下载
python3.11 命令不存在 检查 Python 3.11 是否已正确安装并加入 PATH
虚拟环境激活报错 Permission denied 执行 chmod +x venv/bin/activate

原创不易,如果本文对你有帮助请点赞收藏

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐