杰瑞科技汇

python anaconda 离线

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

python anaconda 离线-图1
(图片来源网络,侵删)

整个过程的核心思想是:在有网络的环境中,先把所有需要的东西下载好,然后拷贝到离线环境中进行安装。


核心流程概览

  1. 准备环境 (在有网络的主机上):

    • 下载 Anaconda 安装包。
    • 创建一个离线环境的“包”列表。
    • 下载这个列表中的所有依赖包。
  2. 离线部署 (在无网络的主机上):

    • 将下载好的 Anaconda 安装包和所有依赖包拷贝到目标主机。
    • 安装 Anaconda。
    • 创建离线环境。
    • 将下载好的依赖包安装到这个环境中。

详细步骤指南

第一步:在有网络的环境中准备所有文件

假设你有一台可以上网的电脑(我们称之为“主机A”),你要将 Anaconda 部署到一台没有网络的电脑(“目标机B”)。

python anaconda 离线-图2
(图片来源网络,侵删)

下载 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

    python anaconda 离线-图3
    (图片来源网络,侵删)
  • 导出环境配置文件:这个 .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 (推荐)

    1. 安装 conda-pack:
      conda install -c conda-forge conda-pack
    2. 打包环境:这个命令会把你当前激活的环境 (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上应该有:

  1. Anaconda3-2025.09-0-Linux-x86_64.sh (或对应的安装包)
  2. my_offline_env.tar.gz (如果你用了 conda-pack)
  3. downloaded_pkgs/ 文件夹 (如果你用了手动下载方法)

第二步:在离线环境中进行部署

将你准备好的所有文件(安装包和依赖包文件夹)通过 U 盘、移动硬盘等方式,拷贝到目标机B上。

安装 Anaconda

  • Linux/macOS:

    1. 给安装包添加可执行权限:
      chmod +x Anaconda3-2025.09-0-Linux-x86_64.sh
    2. 运行安装脚本,按照提示进行安装。建议一路回车使用默认路径,这样后续操作最简单。
      ./Anaconda3-2025.09-0-Linux-x86_64.sh
    3. 安装完成后,根据提示初始化 Conda。
      # 在 shell 配置文件中添加 conda 路径
      # 安装脚本通常会自动询问是否要执行
      source ~/.bashrc
  • Windows:

    1. 双击 Anaconda3-2025.09-0-Windows-x86_64.exe
    2. 运行安装向导,建议选择“Just Me”安装,并使用默认安装路径
    3. 安装完成后,打开 “Anaconda Prompt”,它会自动加载 Conda 环境。

创建离线环境并安装包

情况A:你使用了 conda-pack (最简单)

  1. 创建一个新环境
    conda create -n my_final_env
  2. 激活它
    conda activate my_final_env
  3. 解压并导入打包好的环境
    # 将 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

  1. 创建一个新环境

    conda create -n my_final_env python=3.9
  2. 激活它

    conda activate my_final_env
  3. 设置离线频道:告诉 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
  4. 安装包:安装命令会从本地文件夹中读取包。

    # 你可以一个一个装
    conda install numpy pandas scikit-learn
    # 或者使用 environment.yml 文件批量安装
    # (确保 environment.yml 也在目标机B上)
    conda env update -f environment.yml

常见问题与注意事项

  1. 操作系统和架构必须匹配:你下载的 Anaconda 安装包和依赖包的架构(如 linux-64, win-64)必须与目标机B的操作系统和 CPU 架构完全一致,否则无法安装。
  2. Python 版本兼容性:确保你准备环境时使用的 Python 版本与目标机B上安装的 Anaconda 默认 Python 版本或你创建的新环境的 Python 版本兼容。
  3. 使用 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
  4. 代理服务器:如果你的主机A需要通过代理上网,请设置 http_proxyhttps_proxy 环境变量。
  5. Conda 环境 vs. Pip 环境condapip 有时会安装重复的包(如 setuptools),尽量优先使用 conda 来管理依赖,它的依赖解析能力更强,能避免很多离线安装的坑。
步骤 有网络主机 (准备) 离线目标机 (部署)
准备安装包 下载 Anaconda3-XXX.sh/.exe 拷贝安装包到目标机
准备依赖包 conda create -> conda install -> conda env export -> (conda packconda download) 拷贝依赖包/打包文件到目标机
部署 - conda create -> conda activate -> (conda unpackconda config --add channels file://... -> conda install)

遵循以上步骤,你就可以成功地在任何离线环境中部署功能完整的 Python (Anaconda) 环境了。

分享:
扫描分享到社交APP
上一篇
下一篇