【问题标题】:How to bring all conda environments into one folder如何将所有 conda 环境放入一个文件夹
【发布时间】:2018-07-23 07:08:59
【问题描述】:

我在 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 实际上说

提示:在 Windows 中,最好先停用一个环境,然后再激活另一个环境。

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

【问题讨论】:

  • 如果您已经在 conda 环境中创建 conda-environment,是否会发生这种情况?这很奇怪。
  • @juanpa.arrivillaga 你的意思是如果我创建了new36python36 处于活动状态?为什么blender35ntl 会消失?
  • 您已经发现了 2 个 conda roots。但是,当您调用activate 时,它会运行在%PATH% 中找到的第一个activate。运行activate 后,它会更改%PATH%,它现在从第二个根运行conda info

标签: python environment-variables anaconda conda


【解决方案1】:

限制

您不能只是将目录从一个位置移动到另一个位置。环境中的所有脚本都引用了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

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

注意:该文件将包含包名称、版本和构建通道。对于构建通道为的包,使用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

希望这会有所帮助。

【讨论】:

  • 发生这种混淆是因为我可能在激活python36 的同时创建了一个新环境吗?
  • @Michael - 不。第二次安装与其他安装完全分开。混合将在活动环境中创建第二个root 环境。当您创建其中一些环境时,您已经安装了 2 个root
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 2019-11-09
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多