python环境的导出与导入
1 问题描述
需要在多台电脑中安装python项目的环境,需要避免第三方库不同版本的影响,减少重复工作量。
2 解决方案
本文提供两种环境复制方案,并提供了详细的步骤:
不太好的方案:使用requirements.txt
比较好的方案:使用requirements.yaml
2.1 不太好的方案:使用requirements.txt
使用
requirements.txt
导出环境中所有使用库的名称和版本号。注意,这里说的“使用库”是指导出的库不一定是当前python环境中所有的库,而是所在项目中使用了的库,这是不一样的。(查看所有的库可以通过
conda list
实现)
step 1:环境导出
这里使用的是windows下的Anaconda3,先打开Anaconda Navigator窗口,选择所需导出的环境,在选项中选择Open Terminal打开终端窗口。输入语句,进入D盘,打开工程项目文件所在的窗口
1 | d: |
输入
1 | pip freeze > requirements.txt |
实现环境的导出,在项目文件目录中可以看到导出的requirements.txt
文件,文件中包括了使用库的名称和版本号。如果该文件为空,则说明导出失败,检查上述步骤,是否是打开了所需环境的终端。
step 2:环境导入
环境定位到文件所在文件夹,通过代码
1 | pip install -r requirements.txt |
即可实现环境的导入。
但是这种方法存在一些问题,一些通过pip方式安装的库会在requirements.txt文件中记录路径信息,但这个路径在新设备中不一定有,因此会报错,处理起来也比较麻烦(已放弃)。
2.2 比较好的方案:使用requirements.yaml
.yaml是保存环境信息的专用文件,在不同机器间导入速度快,可靠性高。
step 1:环境导出
这里使用的是windows下的Anaconda3,先打开Anaconda Navigator窗口,选择所需导出的环境,在选项中选择Open Terminal打开终端窗口。输入语句,进入D盘,打开工程项目文件所在的窗口
1 | d: |
输入
1 | conda env export > requirements.yaml |
实现文件导出,.yaml文件保存在项目文件目录。
step 2:环境导入
打开anaconda终端,定位到.yaml文件所在目录,直接在base环境中输入
1 | conda env create -f environment.yaml |
即可完成新环境的创建,注意新环境的名称会默认和之前机器上环境的名称一致。
2022年2月8日
Pcon