这种情况通常被称为“离线安装”或“离线部署”,常见于企业内网、实验室、服务器机房或者网络受限的环境。

整个过程的核心思想是:在有网络的环境中,先把所有需要的东西下载好,然后拷贝到离线环境中进行安装。
核心流程概览
-
准备环境 (在有网络的主机上):
- 下载 Anaconda 安装包。
- 创建一个离线环境的“包”列表。
- 下载这个列表中的所有依赖包。
-
离线部署 (在无网络的主机上):
- 将下载好的 Anaconda 安装包和所有依赖包拷贝到目标主机。
- 安装 Anaconda。
- 创建离线环境。
- 将下载好的依赖包安装到这个环境中。
详细步骤指南
第一步:在有网络的环境中准备所有文件
假设你有一台可以上网的电脑(我们称之为“主机A”),你要将 Anaconda 部署到一台没有网络的电脑(“目标机B”)。

下载 Anaconda 安装包
访问 Anaconda 官网 的“Archived Versions”页面,选择一个适合你目标机B操作系统的稳定版本(Linux-64, Windows-64, Mac-64),下载对应的 命令行安装包 (Command-Line Installer),通常是 .sh (Linux/Mac) 或 .exe (Windows) 文件。
(Linux):
wget https://repo.anaconda.com/archive/Anaconda3-2025.09-2025.09-0-Linux-x86_64.sh
创建并导出环境依赖列表 (最关键的一步)
这一步的目的是找出你需要的 Python 环境需要哪些包。
- 在主机A上安装 Anaconda:如果你还没有安装,先安装它。
- 创建一个临时环境:为了不污染你的主环境,最好创建一个新的环境来打包。
# 创建一个名为 my_offline_env 的环境,指定 Python 版本 conda create -n my_offline_env python=3.9
- 激活这个环境:
conda activate my_offline_env
- 安装你需要的包:在这个环境中,像平常一样安装你需要的所有库。
# 示例:安装 numpy, pandas, scikit-learn pip install numpy pandas scikit-learn matplotlib
注意:这里用
pip也可以,但conda通常能更好地处理复杂的依赖关系,建议优先使用conda install。
(图片来源网络,侵删) - 导出环境配置文件:这个
.yml文件记录了所有包的名称和版本。conda env export > environment.yml
你会得到一个
environment.yml文件,内容类似这样:name: my_offline_env channels: - defaults dependencies: - numpy=1.26.0 - pandas=2.1.1 - scikit-learn=1.3.0 - matplotlib=3.8.0 - python=3.9.18 - ... # 其他依赖 prefix: /home/user/anaconda3/envs/my_offline_env
下载所有依赖包
我们使用刚刚生成的 environment.yml 文件来下载所有包到本地文件夹。
-
创建一个文件夹来存放下载的包:
mkdir offline_packages
-
使用
conda pack或手动下载:这里推荐一个更简单直接的工具conda-pack。使用
conda-pack(推荐)- 安装
conda-pack:conda install -c conda-forge conda-pack
- 打包环境:这个命令会把你当前激活的环境 (
my_offline_env) 打包成一个.tar.gz文件,其中包含了 Python 解释器和所有已安装的包。conda pack -n my_offline_env -o my_offline_env.tar.gz
执行后,你会得到
my_offline_env.tar.gz文件,这个文件就是你离线环境的核心。
手动下载所有
.tar.bz2包 (更灵活)如果你不想打包整个环境,只想下载独立的包,可以使用以下脚本,这个脚本会解析
environment.yml并从 Anaconda 的仓库中下载所有包的.tar.bz2文件。# 确保你在 environment.yml 所在的目录 # conda 需要知道你的 channels conda config --append channels defaults # 创建下载目录 mkdir -p downloaded_pkgs # 使用一个循环来下载每个包 # 这个脚本需要一点 shell 知识 for package in $(grep '^[^-]' environment.yml | awk '{print $1}'); do # 去掉版本号,只保留包名 pkg_name=$(echo $package | cut -d'=' -f1) echo "Downloading $pkg_name ..." conda download $pkg_name --platform your_target_platform --outdir downloaded_pkgs done注意:
--platform your_target_platform需要替换成你的目标平台,linux-64,win-64,osx-64。 - 安装
现在你有网络的主机A上应该有:
Anaconda3-2025.09-0-Linux-x86_64.sh(或对应的安装包)my_offline_env.tar.gz(如果你用了conda-pack)downloaded_pkgs/文件夹 (如果你用了手动下载方法)
第二步:在离线环境中进行部署
将你准备好的所有文件(安装包和依赖包文件夹)通过 U 盘、移动硬盘等方式,拷贝到目标机B上。
安装 Anaconda
-
Linux/macOS:
- 给安装包添加可执行权限:
chmod +x Anaconda3-2025.09-0-Linux-x86_64.sh
- 运行安装脚本,按照提示进行安装。建议一路回车使用默认路径,这样后续操作最简单。
./Anaconda3-2025.09-0-Linux-x86_64.sh
- 安装完成后,根据提示初始化 Conda。
# 在 shell 配置文件中添加 conda 路径 # 安装脚本通常会自动询问是否要执行 source ~/.bashrc
- 给安装包添加可执行权限:
-
Windows:
- 双击
Anaconda3-2025.09-0-Windows-x86_64.exe。 - 运行安装向导,建议选择“Just Me”安装,并使用默认安装路径。
- 安装完成后,打开 “Anaconda Prompt”,它会自动加载 Conda 环境。
- 双击
创建离线环境并安装包
情况A:你使用了 conda-pack (最简单)
- 创建一个新环境:
conda create -n my_final_env
- 激活它:
conda activate my_final_env
- 解压并导入打包好的环境:
# 将 my_offline_env.tar.gz 放在当前目录或指定路径 # 解压 tar -xzf my_offline_env.tar.gz # 解压后会生成一个文件夹,my_offline_env # 将这个文件夹链接到当前环境 conda unpack my_offline_env
my_final_env就包含了你之前打包的所有库和 Python 版本。
情况B:你手动下载了所有 .tar.bz2 包
-
创建一个新环境:
conda create -n my_final_env python=3.9
-
激活它:
conda activate my_final_env
-
设置离线频道:告诉 Conda 不要去网上找包,而是从本地找。
conda config --add channels file:///path/to/your/downloaded_pkgs # 将 /path/to/your/downloaded_pkgs 替换为 downloaded_pkgs 文件夹在目标机B上的绝对路径 # conda config --add channels file:///C:/Users/YourUser/offline_packages
-
安装包:安装命令会从本地文件夹中读取包。
# 你可以一个一个装 conda install numpy pandas scikit-learn # 或者使用 environment.yml 文件批量安装 # (确保 environment.yml 也在目标机B上) conda env update -f environment.yml
常见问题与注意事项
- 操作系统和架构必须匹配:你下载的 Anaconda 安装包和依赖包的架构(如
linux-64,win-64)必须与目标机B的操作系统和 CPU 架构完全一致,否则无法安装。 - Python 版本兼容性:确保你准备环境时使用的 Python 版本与目标机B上安装的 Anaconda 默认 Python 版本或你创建的新环境的 Python 版本兼容。
- 使用
pip的注意事项:conda install失败,可以尝试pip install,但最好在离线环境下也用pip下载好.whl文件。- 在有网环境下下载 pip 包:
pip download -d pip_offline_packages numpy pandas
- 在离线环境下安装 pip 包:
pip install --no-index --find-links=/path/to/pip_offline_packages numpy pandas
- 在有网环境下下载 pip 包:
- 代理服务器:如果你的主机A需要通过代理上网,请设置
http_proxy和https_proxy环境变量。 - Conda 环境 vs. Pip 环境:
conda和pip有时会安装重复的包(如setuptools),尽量优先使用conda来管理依赖,它的依赖解析能力更强,能避免很多离线安装的坑。
| 步骤 | 有网络主机 (准备) | 离线目标机 (部署) |
|---|---|---|
| 准备安装包 | 下载 Anaconda3-XXX.sh/.exe |
拷贝安装包到目标机 |
| 准备依赖包 | conda create -> conda install -> conda env export -> (conda pack 或 conda download) |
拷贝依赖包/打包文件到目标机 |
| 部署 | - | conda create -> conda activate -> (conda unpack 或 conda config --add channels file://... -> conda install) |
遵循以上步骤,你就可以成功地在任何离线环境中部署功能完整的 Python (Anaconda) 环境了。
