简介:Conda是一个流行的开源包管理工具和环境管理系统,特别适用于Python。它允许用户轻松地创建、导出、共享和管理不同的Python环境,以及安装、更新和删除软件包和依赖项。Conda还具有跨平台性,可以在不同的操作系统上运行,并且具有良好的环境隔离能力,使得在同一台机器上同时管理多个不同版本的Python和相关软件包成为可能。
优势:使用Conda导出和创建Python开发环境的快照,可以轻松地解决在不同的机器上共享、备份和恢复工作环境。
历史攻略:
操作步骤:
# 导出环境快照
conda env export > environment.yml
# 创建环境快照
conda env create -f environment.yml
导出环境快照,运行结果:
(test) ubuntu@VM-8-13-ubuntu:~$ pip list
Package Version
----------------- -------
aiofiles 23.2.1
html5tagger 1.3.0
httptools 0.6.1
iniconfig 2.0.0
multidict 6.0.5
packaging 24.1
pip 24.0
pluggy 1.5.0
pytest 8.2.2
sanic 23.12.1
sanic-routing 23.12.0
setuptools 69.5.1
tracerite 1.1.1
typing_extensions 4.12.2
ujson 5.10.0
uvloop 0.19.0
websockets 12.0
wheel 0.43.0
(test) ubuntu@VM-8-13-ubuntu:~$ python --version
Python 3.12.3
(test) ubuntu@VM-8-13-ubuntu:~$ conda env export > environment.yml
(test) ubuntu@VM-8-13-ubuntu:~$ cat environment.yml
name: test
channels:
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- _openmp_mutex=5.1=1_gnu
- bzip2=1.0.8=h5eee18b_6
- ca-certificates=2024.3.11=h06a4308_0
- expat=2.6.2=h6a678d5_0
- ld_impl_linux-64=2.38=h1181459_1
- libffi=3.4.4=h6a678d5_1
- libgcc-ng=11.2.0=h1234567_1
- libgomp=11.2.0=h1234567_1
- libstdcxx-ng=11.2.0=h1234567_1
- libuuid=1.41.5=h5eee18b_0
- ncurses=6.4=h6a678d5_0
- openssl=3.0.13=h7f8727e_2
- pip=24.0=py312h06a4308_0
- python=3.12.3=h996f2a0_1
- readline=8.2=h5eee18b_0
- setuptools=69.5.1=py312h06a4308_0
- sqlite=3.45.3=h5eee18b_0
- tk=8.6.14=h39e8969_0
- tzdata=2024a=h04d1e81_0
- wheel=0.43.0=py312h06a4308_0
- xz=5.4.6=h5eee18b_1
- zlib=1.2.13=h5eee18b_1
- pip:
- aiofiles==23.2.1
- html5tagger==1.3.0
- httptools==0.6.1
- iniconfig==2.0.0
- multidict==6.0.5
- packaging==24.1
- pluggy==1.5.0
- pytest==8.2.2
- sanic==23.12.1
- sanic-routing==23.12.0
- tracerite==1.1.1
- typing-extensions==4.12.2
- ujson==5.10.0
- uvloop==0.19.0
- websockets==12.0
prefix: /home/ubuntu/miniconda3/envs/test
免密设置请参考:
创建环境快照,运行结果:
(base) tom@LAPTOP-3FI0HAN5:~$ conda env list
# conda environments:
#
base * /home/tom/miniconda3
(base) tom@LAPTOP-3FI0HAN5:~$ vim environment.yml
(base) tom@LAPTOP-3FI0HAN5:~$ conda env create -f environment.yml
(base) tom@LAPTOP-3FI0HAN5:~$ conda activate test
(test) tom@LAPTOP-3FI0HAN5:~$ pip list
Package Version
----------------- -------
aiofiles 23.2.1
html5tagger 1.3.0
httptools 0.6.1
iniconfig 2.0.0
multidict 6.0.5
packaging 24.1
pip 24.0
pluggy 1.5.0
pytest 8.2.2
sanic 23.12.1
sanic-routing 23.12.0
setuptools 69.5.1
tracerite 1.1.1
typing_extensions 4.12.2
ujson 5.10.0
uvloop 0.19.0
websockets 12.0
wheel 0.43.0
(test) tom@LAPTOP-3FI0HAN5:~$ python --version
Python 3.12.3
(test) tom@LAPTOP-3FI0HAN5:~$
前后对比,可知,pip list 完全一致,python版本也一致。
注意事项:
1、保证环境的完整性:确保在导出环境之前激活了所需的环境。
2、确定文件命名和路径:确保 environment.yml 文件保存在一个容易访问的位置,并且使用适当的文件名。
3、核实版本兼容性:确保使用的是兼容的 Conda 版本。在一些较老的 Conda 版本中,可能不支持 conda env export 命令。
4、核实依赖项的准确性: 在导出环境时,确保所有的依赖项都已经安装并且在环境中正常运行。
5、检查Python 版本兼容性: 确保 environment.yml 文件中指定的 Python 版本在目标环境中是可用的,并且与项目兼容。