python-3.x Anaconda导出环境文件

llew8vvj  于 2023-02-10  发布在  Python
关注(0)|答案(9)|浏览(252)

我怎样才能使水蟒环境文件,可以在其他计算机上使用?
我使用conda env export > environment.yml将我的Python环境导出到YML。导出的environment.yml包含prefix: /home/superdev/miniconda3/envs/juicyenv这一行,它Map到我的Python的位置,这在其他人的PC上是不同的。

6fe3ivhb

6fe3ivhb1#

我在conda规范中找不到任何允许导出没有prefix: ...行的环境文件的东西,然而,正如Alex在评论中指出的,conda在从文件创建环境时似乎并不关心前缀行。
记住这一点,如果您希望其他用户不知道您的默认安装路径,可以在写入environment.yml之前删除带有grep的前缀行。

conda env export | grep -v "^prefix: " > environment.yml

无论哪种方式,其他用户都会运行:

conda env create -f environment.yml

并且该环境将安装在其默认的Conda环境路径中。
如果您想指定一个不同于系统默认值的安装路径(与environment.yml中的“prefix”无关),只需使用-p标志,后跟所需的路径。

conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name

请注意,Conda建议手动创建environment.yml,如果您希望跨平台(Windows/Linux/Mac)共享您的环境,这一点尤其重要,在这种情况下,您可以省略prefix行。

vohkndzv

vohkndzv2#

保存要安装到另一台计算机的环境中的软件包的最简单方法是:

$ conda list -e > req.txt

则可以使用安装环境

$ conda create -n <environment-name> --file req.txt

如果你使用pip,请使用以下命令:参考https://pip.pypa.io/en/stable/reference/pip_freeze/

$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt
xxls0lw8

xxls0lw83#

  • Linux或Mac

conda环境导出-无生成|grep -v“前缀”〉环境.yml

  • windows

conda环境导出-无生成|findstr -v“前缀”〉环境.yml
依据:默认情况下,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版本和操作系统分离。

hfwmuf9z

hfwmuf9z4#

首先激活您的Conda环境(下面,myenv是假定的环境名称)。

conda activate myenv

然后您只需运行以下命令

conda env export > environment.yml

请注意,您可以将environment.yml替换为您选择的任何其他文件名。

4uqofj5v

4uqofj5v5#

1.首先激活你的conda环境(你想要导出/备份的那个)

conda activate myEnv

1.将所有程序包导出到文件(myEnvBkp.txt)

conda list --explicit > myEnvBkp.txt

1.恢复/导入环境:

conda create --name myEnvRestored --file myEnvBkp.txt
gjmwrych

gjmwrych6#

我发现仅以字符串格式导出包比导出整个conda环境更具有可移植性。

$ conda list -e > requirements.txt

但是,此requirements.txt包含无法在操作系统之间移植的内部版本号,例如在MacUbuntu之间。在conda env export中,我们有--no-builds选项,但没有conda list -e选项,因此我们可以通过发出以下命令删除内部版本号:

$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt

并在另一台计算机上重新创建环境:

conda create -n recreated_env --file requirements.txt
ymdaylpp

ymdaylpp7#

对我来说,康达给的程序工作:
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment
但仅当在anaconda提示符/控制台中执行时。
VSCode终端只生成了一个带有我的环境路径的yml文件,但没有依赖项中的包的显式列表。

bvjxkvbb

bvjxkvbb8#

对于Windows用户
1.打开CMD

  1. Conda激活蜘蛛环境
  2. conda env export〉SpidersEnv. yml

    然后浏览用户文件夹并搜索SpidersEnv. yml

这也是备份(导出)环境的另一种方法

b1payxdu

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 ...

相关问题