助你提升效率的“Python”使用小技巧(1)
2020-07-23 本文已影响0人
影森数码科技
1、如何将python环境(或者conda环境)移植到另一台机器(或者远程服务器)?/如何一键导出当前环境中所有已经安装的包列表?
因为工作或者科研的需求,有时可能会在不同的机器中运行项目,但是很多python开发项目可能因为一个小模块的版本不对,就无法运行。而环境移植方法,可以很好的解决这个问题,而且跟我们手动安装包相比可以剩下大量的环境配置时间,从而提升我们的工作效率。
注意:环境移植不能跨平台使用,如果是不同的操作系统,这些方法都是无效的,如果是源机器与目标机器是同一个操作系统的话,推荐使用第二种方法进行环境移植。
第一种方法:使用pip 命令移植环境
移植环境主要分为三个步骤:
- 将要克隆的conda环境通过pip或者conda命令导出成“.txt”文件。
- 将“.txt” 文件移植到目标机器。
- 使用“.txt”文件通过pip或者conda命令安装需要的环境。
(1)使用python 导出当前环境所有安装的包的列表并将环境文件移植到所需机器
pip freeze > requirements.txt
其中 requirements.txt 为你导出包的列表存档的名称,当然如果你想的话可以自定义它。
(2)使用scp命令将环境文件拷贝到目标机器/或者用U盘也可以
scp -r /path/to/file username@example.com:/path/for/file
# -r (recursive)递归拷贝参数,如果拷贝的是整个目录需要加上。
# “/path/to/file” 填写的是本地文件路径
# “username” 是目标机器用户名
# “example.com”可以是目标机器的ip地址或者是机器域名
# “/path/for/file”是目标系统绝对路径
(3)使用pip 安装 requirements.txt 中的所有包
pip install -r requirements.txt
其中 requirements.txt 为你导出包的列表存档的名称。
第一种方法的conda版本
(1)使用 conda 命令导出当前环境的包列表。
conda list -e > requirements.txt
(2)使用 conda 命令安装导出包列表文件中的所有包。
conda install --yes --file requirements.txt
注意:如果conda命令无效时,请使用上面的pip进行安装。

第二种方法: 使用conda导出环境包列表的“.yaml”文件进行环境移植
移植环境主要分为三个步骤:
- 将要克隆的conda环境导出成“.yaml”文件。
- 将“.yaml” 文件移植到目标机器。
- 使用“.yaml”文件安装需要的环境。
(1)将要克隆的机器的环境打包
- 先查看当前目录(这是导出文件的地址)
pwd # 查看当前目录
- 将原机器的环境打包成为“.yaml”文件,其中“environment_name”是原环境名称。
conda env export -n environment_name > environment.yaml
(2)移植 ".yaml" 环境文件到目标机器。
(3)在目标服务器上使用 ".yaml" 文件创建一个新的环境,完成环境移植。
conda env create -n environment_name -f environment.yaml # 指定名称版本
conda env create -f environment.yaml #使用原来的环境名称版本
conda env update --file environment.yaml # 在现有的环境下,仅仅安装列表中的包。

END
最后可以通过命令检查环境是否移植成功。
conda info -e # 查看环境是否存在
source activate env_name # 激活环境,env_name 是你创建的环境名称
conda list # 查看当前环境的包列表

总结
虽然,每次学习新的东西都会遇到很多挫折,当时我相信每一次尝试,每一次学习都是在向更好的自己迈进,毕竟风雨过后才会出现彩虹,一起加油吧!