Txing

欢迎来到 | 伽蓝之堂

0%

python环境的导出与导入

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
2
d:
cd D:\Code\code_v2

输入

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
2
d:
cd D:\Code\code_v2

输入

1
conda env export > requirements.yaml

实现文件导出,.yaml文件保存在项目文件目录。

step 2:环境导入

打开anaconda终端,定位到.yaml文件所在目录,直接在base环境中输入

1
conda env create -f environment.yaml

即可完成新环境的创建,注意新环境的名称会默认和之前机器上环境的名称一致。

2022年2月8日

Pcon