我如何才能使蟒蛇环境文件可以在其他计算机上使用?
我使用conda env export > environment. YML将我的anaconda python环境导出到YML。导出的环境。Yml包含这个行前缀:/home/superdev/miniconda3/envs/juicyenv,它映射到我的anaconda的位置,这在其他pc上是不同的。
我如何才能使蟒蛇环境文件可以在其他计算机上使用?
我使用conda env export > environment. YML将我的anaconda python环境导出到YML。导出的环境。Yml包含这个行前缀:/home/superdev/miniconda3/envs/juicyenv,它映射到我的anaconda的位置,这在其他pc上是不同的。
当前回答
对我来说,Conda给出的程序是有效的:
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment
但前提是在anaconda提示/控制台中执行。
VSCode终端只生成了一个带有我的环境路径的yml文件,但没有显式的依赖包列表。
其他回答
对我来说,Conda给出的程序是有效的:
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment
但前提是在anaconda提示/控制台中执行。
VSCode终端只生成了一个带有我的环境路径的yml文件,但没有显式的依赖包列表。
我在conda规范中找不到任何允许你在没有前缀的情况下导出环境文件的东西:…线。然而,正如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建议创建环境。如果你想跨平台(Windows/Linux/Mac)共享你的环境,这是特别重要的。在这种情况下,可以省略前缀行。
从一个环境中保存要安装到另一台计算机的包的最简单的方法是:
$ 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
首先激活Conda环境(下面,myenv是环境的假定名称)。
conda activate myenv
那么您只需要运行这个命令
conda env export > environment.yml
注意,您可以替换environment。Yml与您选择的任何其他文件名。
我发现只导出字符串格式的包比导出整个conda环境更可移植。正如前面的答案所暗示的:
$ conda list -e > requirements.txt
但是,这个requirements.txt包含的构建号不能在操作系统之间移植,例如在Mac和Ubuntu之间。在conda env export中,我们有——no-builds选项,但没有conda list -e选项,所以我们可以通过发出以下命令来删除构建号:
$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt
并在另一台计算机上重新创建环境:
conda create -n recreated_env --file requirements.txt