使用conda将Windows下的机器学习环境迁移到Linux

时间:2025-03-04 08:04:21

问题描述

用pycharm在windows上开发了一个项目,想在ubuntu服务器上部署。需要重新配置环境。
尝试使用以下命令创建

conda list -e > 
conda list > 

可能是以下任何一个:

# packages in environment at C:\ProgramData\Anaconda2\envs\myenvs:
#
# Name                    Version                   Build  Channel
anyjson                   0.3.3            py36h1110a06_1  
arrow                     0.12.1                   py36_1  
asn1crypto                0.24.0                   py36_0  
babel                     2.6.0                    py36_0

​​
或者这个

name: myenv
channels:
  - defaults
dependencies:
  - anyjson=0.3.3=py36h1110a06_1
  - arrow=0.12.1=py36_1
  - asn1crypto=0.24.0=py36_0
  - babel=2.6.0=py36_0
  - blas=1.0=mkl

这两种方法导出的环境均会在ubuntu机器上出错,因为这个软件包是针对windows的:(/win-64/

解决方法

conda export -no-build 命令用于将当前 Conda 环境导出为一个 YAML 文件,并排除构建信息。这个命令将当前环境的所有软件包及其依赖项写入 YAML 文件中,并删除构建相关的信息。因此,生成的 YAML 文件可以在不同操作系统、不同架构之间共享。

conda activate test
conda env export -no-build > 

这将将当前环境导出到名为 的 YAML 文件中。在导出的 YAML 文件中,将不包括与构建相关的信息,例如构建号、构建时间等。这将使得导出的环境文件更加通用,可以在不同的环境中使用。

conda env create -f 

这将在 Linux 上创建一个名为 test 的新 Conda 环境,其中包含与 Windows 上相同版本的软件包