赞
踩
问题描述:
在一台Ubuntu电脑上完全复刻在Windows中通过conda创建的环境。
在Windows机器上,需要导出当前conda环境的配置。这将生成一个environment.yml
文件,其中包含所有已安装的包和版本信息。
打开Anaconda Prompt(或任何你使用的命令行界面),然后运行以下命令来导出环境:
conda env export --name <env_name> > environment.yml
这里 <env_name>
是在Windows上创建的conda环境的名字。
environment.yml
文件将生成的environment.yml
文件复制到目标ubuntu机器上。可以使用USB驱动器、网络共享或者通过SSH传输文件。
如果ubuntu上还没有安装Miniconda,需要先安装,可以从Miniconda的官方网页下载适合Linux的安装脚本,或者从清华镜像等其他可信的镜像站点下载。然后运行安装脚本并按照提示操作。
在Ubuntu上,使用environment.yml
文件来创建与Windows上相同的环境。在终端中运行以下命令:
conda env create -f environment.yml
这将读取environment.yml
文件并创建一个具有相同包和版本的新环境。
创建完环境后,你需要激活它才能开始使用:
conda activate <new_env_name>
这里 <new_env_name>
是在Ubuntu上创建的环境名字,通常这会和Windows上的环境名字相同。
确保在两台机器上使用的Miniconda版本尽量一致,以避免潜在的兼容性问题。
某些包可能在不同的操作系统上有不同的构建,因此在Ubuntu上创建环境时可能会遇到一些差异或错误。如果出现这种情况,需要手动解决这些依赖关系。如下:
(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的构建标签。
原本的条目可能类似于:
dependencies:
- python=3.6.13=h3758d61_0
- sqlite=3.45.3=h2bbff1b_0
应该修改为:
dependencies:
- python=3.6
- sqlite
这样Conda将在解决依赖关系时选择适用于Linux的默认构建。
对于像certifi
、pip
、setuptools
和wincertstore
这样的包,确保它们没有Windows特有的构建标签。在environment.yml
文件中,只需要指定包名即可,例如:
dependencies:
- certifi
- pip
- setuptools
保存并关闭environment.yml
文件。再次运行:
conda env create -f environment.yml
如果仍有包无法找到,检查它们是否真的有Linux版本,或者是否有替代的包可以满足相同的功能需求。
如果environment.yml
文件中的某些包在Ubuntu上不可用,需要找到合适的替代品或者从源代码编译。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。