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上不可用,需要找到合适的替代品或者从源代码编译。

相关推荐
言乐62 小时前
HTML视频审核模型
python·django·virtualenv·pygame·tornado
言乐63 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
yl45304 小时前
硫酸泄露处理生产商怎么选才够专业
大数据·人工智能·python
笨笨饿4 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
for_ever_love__5 小时前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归
打工仔折腾 AI5 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
I Am a robert girl5 小时前
当传感器学会“说谎“:拆解可靠性门控的稀疏惯性动捕融合
python·姿态估计·传感器融合·惯性动捕·imu传感器·可靠性门控·可穿戴计算
李航19836 小时前
AI定制柜建模,需要详细的建模规范和标准流程
人工智能·python·计算机视觉·ai·ai编程
沙漠之主6 小时前
Python 教学设计资料:从入门到实战的完整课程方案
爬虫·python
ebiobiz7 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu