python - 如何将所有 conda 环境放入一个文件夹

标签 python environment-variables anaconda conda

我使用的是 WIN10,使用 conda 版本 4.3.23 和 anaconda-script.py 命令行客户端(版本 1.6.0)。

我想激活环境 new36,但在激活环境 conda info --envs 之前给出:

(C:\Users\Myself\Anaconda3) C:\Users\Myself>conda info --envs
# conda environments:
#
blender35                C:\Users\Myself\Anaconda3\envs\blender35
django                   C:\Users\Myself\Anaconda3\envs\django
ntl                      C:\Users\Myself\Anaconda3\envs\ntl
python26                 C:\Users\Myself\Anaconda3\envs\python26
python27                 C:\Users\Myself\Anaconda3\envs\python27
python35                 C:\Users\Myself\Anaconda3\envs\python35
python36                 C:\Users\Myself\Anaconda3\envs\python36
webdev                   C:\Users\Myself\Anaconda3\envs\webdev
root                  *  C:\Users\Myself\Anaconda3

搜索路径似乎是 C:\Users\Myself\Anaconda3\envs 并且在激活后,例如python36 conda info --envs 给出:

(python36) C:\Users\Myself>conda info --envs
# conda environments:
#
new36                    C:\Anaconda3\envs\dggs36
django                   C:\Anaconda3\envs\django
python26                 C:\Anaconda3\envs\python26
python27                 C:\Anaconda3\envs\python27
python35                 C:\Anaconda3\envs\python35
python36              *  C:\Anaconda3\envs\python36
webdev                   C:\Anaconda3\envs\webdev
root                     C:\Anaconda3

现在,blender35ntl消失并且无法激活,而new36出现并且可以激活;搜索路径似乎是C:\Anaconda3\envs\

<小时/>

问题:如何将所有环境移至一个文件夹(和一个搜索路径)?我希望将所有内容都放在 C:\Anaconda3\envs\

中 <小时/>

我的猜测是 conda 和 anaconda 之间发生了混淆,但我不知道要检查哪些文件来解决这个问题。

此外,我在 C:\Users\Myself 中找到了 .condarc 文件

ssl_verify: 'True'
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - anaconda-fusion
  - defaults
  - conda-forge
show_channel_urls: true
channel_priority: true
<小时/>

编辑1:The user guide about managing environments实际上说

TIP: In Windows, it is good practice to deactivate one environment before activating another.

按照这个提示,我什至无法激活 new36

最佳答案

限制

您不能只是将目录从一个位置移动到另一个位置。环境中的所有脚本都引用 conda info --envs 列出的环境路径。

解决方案摘要

但是,您可以从一个路径到另一路径重新创建相同的环境。总之,您需要从旧路径收集环境信息,在新路径中重新创建环境,删除旧环境,最后在重新创建所有环境后删除旧根。

所做的假设

Old path: c:\Users\Myself\Anaconda3
New Path: C:\Anaconda3

收集环境信息

列出环境的所有包并将其保存到文件中。

c:\Users\Myself\Anaconda3\bin\conda list -n ntl > c:\temp\ntl.txt
c:\Users\Myself\Anaconda3\bin\conda list -n blender35 > c:\temp\blender36.txt

使用文件中的信息创建新环境

注意:该文件将包含包名称、版本和构建 channel 。对于构建 channel 为 的软件包,请使用 pip 进行安装。

在此处使用 c:\temp\ntl.txt 中的包信息

C:\Anaconda3\bin\conda create -n ntl packagename==version packagename2==version ...

在此处使用 c:\temp\blender35.txt 中的包信息

C:\Anaconda3\bin\conda create -n blender35 packagename==version packagename2==version ...

删除旧路径

我们会在这里走捷径。放弃旧的路径。确实没有必要单独删除环境。

del /S c:\Users\Myself\Anaconda3

希望这有帮助。

关于python - 如何将所有 conda 环境放入一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48757908/

相关文章:

python - Pymodbus : Wrong byte count in response

python - 附加对于具有非多部分负载的消息无效

Python激活环境变量

batch-file - 在下一个批处理脚本运行中使用由批处理脚本设置的环境变量

python-2.7 - 执行错误 : Can't open jupyter notebook on command line (MacOS)

python - 'pkgs'目录和 'site-packages'目录有什么区别? [ python ]

python - 设置 python 管道 - python 子进程

python - Plotly:如何使子图的 x 和 y 轴标题变大?

angular - 构建 Angular 库时是否可以使用自定义 Webpack 配置?

python - 如何降级conda版本?