我怎样才能使水蟒环境文件,可以在其他计算机上使用?我使用conda env export > environment.yml将我的Python环境导出到YML。导出的environment.yml包含prefix: /home/superdev/miniconda3/envs/juicyenv这一行,它Map到我的Python的位置,这在其他人的PC上是不同的。
conda env export > environment.yml
environment.yml
prefix: /home/superdev/miniconda3/envs/juicyenv
6fe3ivhb1#
我在conda规范中找不到任何允许导出没有prefix: ...行的环境文件的东西,然而,正如Alex在评论中指出的,conda在从文件创建环境时似乎并不关心前缀行。记住这一点,如果您希望其他用户不知道您的默认安装路径,可以在写入environment.yml之前删除带有grep的前缀行。
conda
prefix: ...
grep
conda env export | grep -v "^prefix: " > environment.yml
无论哪种方式,其他用户都会运行:
conda env create -f environment.yml
并且该环境将安装在其默认的Conda环境路径中。如果您想指定一个不同于系统默认值的安装路径(与environment.yml中的“prefix”无关),只需使用-p标志,后跟所需的路径。
-p
conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name
请注意,Conda建议手动创建environment.yml,如果您希望跨平台(Windows/Linux/Mac)共享您的环境,这一点尤其重要,在这种情况下,您可以省略prefix行。
prefix
vohkndzv2#
保存要安装到另一台计算机的环境中的软件包的最简单方法是:
$ conda list -e > req.txt
则可以使用安装环境
$ conda create -n <environment-name> --file req.txt
如果你使用pip,请使用以下命令:参考https://pip.pypa.io/en/stable/reference/pip_freeze/
pip
$ env1/bin/pip freeze > requirements.txt $ env2/bin/pip install -r requirements.txt
xxls0lw83#
conda环境导出-无生成|grep -v“前缀”〉环境.yml
conda环境导出-无生成|findstr -v“前缀”〉环境.yml依据:默认情况下,conda env export包括构建信息:
conda env export
$ conda env export ... dependencies: - backcall=0.1.0=py37_0 - blas=1.0=mkl - boto=2.49.0=py_0 ...
您可以改为导出不包含生成信息的环境:
$ conda env export --no-builds ... dependencies: - backcall=0.1.0 - blas=1.0 - boto=2.49.0 ...
它将环境与Python版本和操作系统分离。
hfwmuf9z4#
首先激活您的Conda环境(下面,myenv是假定的环境名称)。
conda activate myenv
然后您只需运行以下命令
请注意,您可以将environment.yml替换为您选择的任何其他文件名。
4uqofj5v5#
1.首先激活你的conda环境(你想要导出/备份的那个)
conda activate myEnv
1.将所有程序包导出到文件(myEnvBkp.txt)
conda list --explicit > myEnvBkp.txt
1.恢复/导入环境:
conda create --name myEnvRestored --file myEnvBkp.txt
gjmwrych6#
我发现仅以字符串格式导出包比导出整个conda环境更具有可移植性。
$ conda list -e > requirements.txt
但是,此requirements.txt包含无法在操作系统之间移植的内部版本号,例如在Mac和Ubuntu之间。在conda env export中,我们有--no-builds选项,但没有conda list -e选项,因此我们可以通过发出以下命令删除内部版本号:
requirements.txt
Mac
Ubuntu
--no-builds
conda list -e
$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt
并在另一台计算机上重新创建环境:
conda create -n recreated_env --file requirements.txt
ymdaylpp7#
对我来说,康达给的程序工作:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment但仅当在anaconda提示符/控制台中执行时。VSCode终端只生成了一个带有我的环境路径的yml文件,但没有依赖项中的包的显式列表。
bvjxkvbb8#
对于Windows用户1.打开CMD
这也是备份(导出)环境的另一种方法
b1payxdu9#
到目前为止,对于我的情况(从x86到arch64)最好的解决方案是:www.example.comhttps://github.com/conda/conda/issues/4339#issuecomment-311804578康达环境出口公司|截断-f 1-d '='|grep-v "前缀"〉环境. yml此外,如果您在不同的机器架构(x86_64〉arch64)之间移动,您需要手动调整一些不兼容的软件包。例如Intel特定的mkl *,ld_impl_linux-64 ...
9条答案
按热度按时间6fe3ivhb1#
我在
conda
规范中找不到任何允许导出没有prefix: ...
行的环境文件的东西,然而,正如Alex在评论中指出的,conda在从文件创建环境时似乎并不关心前缀行。记住这一点,如果您希望其他用户不知道您的默认安装路径,可以在写入
environment.yml
之前删除带有grep
的前缀行。无论哪种方式,其他用户都会运行:
并且该环境将安装在其默认的Conda环境路径中。
如果您想指定一个不同于系统默认值的安装路径(与environment.yml中的“prefix”无关),只需使用
-p
标志,后跟所需的路径。请注意,Conda建议手动创建
environment.yml
,如果您希望跨平台(Windows/Linux/Mac)共享您的环境,这一点尤其重要,在这种情况下,您可以省略prefix
行。vohkndzv2#
保存要安装到另一台计算机的环境中的软件包的最简单方法是:
则可以使用安装环境
如果你使用
pip
,请使用以下命令:参考https://pip.pypa.io/en/stable/reference/pip_freeze/xxls0lw83#
conda环境导出-无生成|grep -v“前缀”〉环境.yml
conda环境导出-无生成|findstr -v“前缀”〉环境.yml
依据:默认情况下,
conda env export
包括构建信息:您可以改为导出不包含生成信息的环境:
它将环境与Python版本和操作系统分离。
hfwmuf9z4#
首先激活您的Conda环境(下面,myenv是假定的环境名称)。
然后您只需运行以下命令
请注意,您可以将environment.yml替换为您选择的任何其他文件名。
4uqofj5v5#
1.首先激活你的conda环境(你想要导出/备份的那个)
1.将所有程序包导出到文件(myEnvBkp.txt)
1.恢复/导入环境:
gjmwrych6#
我发现仅以字符串格式导出包比导出整个
conda
环境更具有可移植性。但是,此
requirements.txt
包含无法在操作系统之间移植的内部版本号,例如在Mac
和Ubuntu
之间。在conda env export
中,我们有--no-builds
选项,但没有conda list -e
选项,因此我们可以通过发出以下命令删除内部版本号:并在另一台计算机上重新创建环境:
ymdaylpp7#
对我来说,康达给的程序工作:
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment
但仅当在anaconda提示符/控制台中执行时。
VSCode终端只生成了一个带有我的环境路径的yml文件,但没有依赖项中的包的显式列表。
bvjxkvbb8#
对于Windows用户
1.打开CMD
然后浏览用户文件夹并搜索SpidersEnv. yml
这也是备份(导出)环境的另一种方法
b1payxdu9#
到目前为止,对于我的情况(从x86到arch64)最好的解决方案是:www.example.comhttps://github.com/conda/conda/issues/4339#issuecomment-311804578
康达环境出口公司|截断-f 1-d '='|grep-v "前缀"〉环境. yml
此外,如果您在不同的机器架构(x86_64〉arch64)之间移动,您需要手动调整一些不兼容的软件包。例如Intel特定的mkl *,ld_impl_linux-64 ...