Conda跨平台环境迁移

问题描述:

在一台Ubuntu电脑上完全复刻在Windows中通过conda创建的环境。

导出环境

在Windows机器上,需要导出当前conda环境的配置。这将生成一个environment.yml文件,其中包含所有已安装的包和版本信息。

打开Anaconda Prompt(或任何你使用的命令行界面),然后运行以下命令来导出环境:

bash 复制代码
conda env export --name <env_name> > environment.yml

这里 <env_name> 是在Windows上创建的conda环境的名字。

复制 environment.yml 文件

将生成的environment.yml文件复制到目标ubuntu机器上。可以使用USB驱动器、网络共享或者通过SSH传输文件。

在Ubuntu上安装conda

如果ubuntu上还没有安装Miniconda,需要先安装,可以从Miniconda的官方网页下载适合Linux的安装脚本,或者从清华镜像等其他可信的镜像站点下载。然后运行安装脚本并按照提示操作。

创建新环境

在Ubuntu上,使用environment.yml文件来创建与Windows上相同的环境。在终端中运行以下命令:

bash 复制代码
conda env create -f environment.yml

这将读取environment.yml文件并创建一个具有相同包和版本的新环境。

激活新环境

创建完环境后,你需要激活它才能开始使用:

bash 复制代码
conda activate <new_env_name>

这里 <new_env_name> 是在Ubuntu上创建的环境名字,通常这会和Windows上的环境名字相同。

注意事项

  • 确保在两台机器上使用的Miniconda版本尽量一致,以避免潜在的兼容性问题。

  • 某些包可能在不同的操作系统上有不同的构建,因此在Ubuntu上创建环境时可能会遇到一些差异或错误。如果出现这种情况,需要手动解决这些依赖关系。如下:

    bash 复制代码
    (base) root@xxxxxxxxxxxxxxxxx:~/Desktop# conda env create -f environment.yml
    Collecting package metadata (repodata.json): done
    Solving environment: failed
    
    ResolvePackageNotFound:
    
    certifi==2021.5.30=py36haa95532_0
    vc==14.2=h2eaa2aa_1
    pip==21.2.2=py36haa95532_0
    setuptools==58.0.4=py36haa95532_0
    vs2015_runtime==14.29.30133=h43f2093_3
    python==3.6.13=h3758d61_0
    wincertstore==0.2=py36h7fe50ca_0
    sqlite==3.45.3=h2bbff1b_0
    复制代码
    ##### 修改 `environment.yml` 文件
    
    打开`environment.yml`文件,移除所有只在Windows上存在的包和版本号,例如`vc`, `vs2015_runtime`等。同时,对于Python和其他基础库,如`sqlite`,确保它们没有特定于Windows的构建标签。
    
    原本的条目可能类似于:
    
    ```yaml
    dependencies:
      - python=3.6.13=h3758d61_0
      - sqlite=3.45.3=h2bbff1b_0
    ```
    
    应该修改为:
    
    ```yaml
    dependencies:
      - python=3.6
      - sqlite
    ```
    
    这样Conda将在解决依赖关系时选择适用于Linux的默认构建。
    
    #### 添加 Linux 兼容的包
    
    对于像`certifi`、`pip`、`setuptools`和`wincertstore`这样的包,确保它们没有Windows特有的构建标签。在`environment.yml`文件中,只需要指定包名即可,例如:
    
    ```yaml
    dependencies:
      - certifi
      - pip
      - setuptools
    ```
    
    #### 尝试再次创建环境
    
    保存并关闭`environment.yml`文件。再次运行:
    
    ```bash
    conda env create -f environment.yml
    ```
    
    如果仍有包无法找到,检查它们是否真的有Linux版本,或者是否有替代的包可以满足相同的功能需求。
  • 如果environment.yml文件中的某些包在Ubuntu上不可用,需要找到合适的替代品或者从源代码编译。

相关推荐
小oo呆32 分钟前
【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核
python·jupyter·conda
小白学大数据1 小时前
Scrapy框架下地图爬虫的进度监控与优化策略
开发语言·爬虫·python·scrapy·数据分析
浊酒南街1 小时前
TensorFlow之微分求导
人工智能·python·tensorflow
立秋67891 小时前
用Python绘制梦幻星空
开发语言·python·pygame
alpszero2 小时前
YOLO11解决方案之对象裁剪探索
人工智能·python·计算机视觉·yolo11
白云千载尽2 小时前
相机、雷达标定工具,以及雷达自动标定的思路
python·自动驾驶·ros
咕噜咕噜啦啦2 小时前
python爬虫实战训练
爬虫·python
盛夏绽放2 小时前
Python字符串常用内置函数详解
服务器·开发语言·python
我想睡觉2612 小时前
Python训练营打卡DAY27
开发语言·python·机器学习
蹦蹦跳跳真可爱5892 小时前
Python----神经网络(基于DNN的风电功率预测)
人工智能·pytorch·python·深度学习·神经网络·dnn