在conda环境中手动添加Windows路径



从Windows命令终端激活conda环境时,系统路径发生了变化。也就是说,如果我打开一个新的终端并执行:

echo %PATH%
conda activate env_name
echo %PATH%

得到两个不同的结果。具体来说,我在conda之外的路径更加"最新",包括我在安装Anaconda后安装的外部程序的位置。例如,我安装了ImageMagick,它包含在conda之外的Windows路径中,但不在我的conda环境中。

换句话说,conda看起来像您所期望的那样,保留了特定的环境,包括Windows shell的path环境变量。这一切都很好,但是现在我想(永久地)更改conda环境中的这个变量(特别是,我希望我的路径包含ImageMagick的位置)。到目前为止,我还没有找到一个很好的解决方案。这里描述的方法确实有效,但看起来很笨拙,因为它使用脚本在激活conda环境时自动修改路径变量。显然,这个变量存储在某个地方,所以我想永久地修改它。什么好主意吗?

您的问题的一个解决方案是在conda环境路径下的bin/文件夹中创建Imagemagik文件的符号链接(~一个快捷方式)

要知道路径,您将执行conda info --envs,您将获得环境和相应的路径(此路径也是当环境被激活时您在echo $PATH调用中看到的第一个路径)

在windows中,您可以以管理员身份打开cmd提示符和类型mklink conda/path/of/environment/bin/ original/location/of/Imagemagik

之后,我相信您应该能够从命令行调用Imagemagik,就好像它在您的路径中一样。

在Ubuntu中,你可以使用ln来创建符号链接

我只是想添加一个我发现的解决方案(感谢这个答案),并最终(有时)使用自己,这是在相关代码中包含以下内容:

import os
os.environ["PATH"] += os.pathsep + magick_path

这个解决方案的优点是,您可以将它放在需要访问的任何脚本或函数中(在我的例子中是ImageMagick),或者更一般地说,在路径中当前没有找到的一些可执行文件。这取决于你想要什么。Prashant的解决方案更持久,因为它有效地将可执行文件添加到整个conda环境中。上面的解决方案更加灵活,因为您可以根据需要添加它,但每次需要时都必须重做。

相关内容

  • 没有找到相关文章

最新更新