如何将所有conda环境纳入一个文件夹

时间:2018-02-13 00:50:30

标签: 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之间出现了混乱,但我不知道要检查哪些文件来解决这个问题。

此外,我在.condarc

找到了C:\Users\Myself文件
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

1 个答案:

答案 0 :(得分: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

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

注意:该文件将包含包名称,版本和构建通道。对于构建频道为&lt; pip&gt;的套餐,请使用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

希望这有帮助。