我有一个保存的文件,其先前创建的环境的输出为conda list
。格式如下
# packages in environment at /home/*****/intelpython3:
#
# Name Version Build Channel
_tflow_select 2.1.0 gpu anaconda
absl-py 0.8.0 py36_0 anaconda
affine 2.3.0 pypi_0 pypi
asn1crypto 0.24.0 py36_3 intel
astor 0.8.0 py36_0 anaconda
atomicwrites 1.3.0 pypi_0 pypi
attrs 19.3.0 pypi_0 pypi
audioread 2.1.6 py36_0 <unknown>
awscli 1.16.292 pypi_0 pypi
backcall 0.1.0 py36_2 <unknown>
backports 1.0 py36_9 <unknown>
bayesian-optimization 1.0.1 pypi_0 pypi
bleach 2.1.3 py36_2 <unknown>
有人可以通过一些python / unix脚本或其他方式将其转换为可以与conda一起使用以创建新环境的yaml(environment.yml)文件吗?
答案 0 :(得分:1)
要将导出的文件转换为conda的Yaml规范,您只需将“名称”和“版本”列以等号连接即可。熊猫是一个很好的工具(我假设您当前的环境列表名为“ environment.txt”):
import pandas as pd
df = pd.read_table('environment.txt', '\\s+', skiprows=3, header=None,
names=['Name', Version', 'Build', 'Channel'])
env = df.Name + '=' + df.Version
env.to_csv('environment.yml', header=False, index=False)
将不包含内部版本号,但是conda并不需要这些。您必须自己指定频道。
要创建当前环境的yaml文件,您需要--export
标志和指向文件的管道。
conda list -n intelpython3 --export > environment.yml
要使用该文件,您可以运行:
conda env create -n <environment name> --file environment.yml
较新版本的conda也可以使用:
conda create -n <environment name> --file environment.yml
但是在较旧的版本上至少在Windows上存在一些问题。