Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将所有conda环境合并到一个文件夹中_Python_Environment Variables_Anaconda_Conda - Fatal编程技术网

Python 如何将所有conda环境合并到一个文件夹中

Python 如何将所有conda环境合并到一个文件夹中,python,environment-variables,anaconda,conda,Python,Environment Variables,Anaconda,Conda,我使用的是WIN10上的conda版本4.3.23和anaconda-script.py命令行客户端(版本1.6.0) 我想激活environmentnew36,但在激活environmentconda info之前--envs给出: (C:\Users\Myself\Anaconda3) C:\Users\Myself>conda info --envs # conda environments: # blender35 C:\Users\Myself\An

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

我想激活environment
new36
,但在激活environment
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
(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
搜索路径似乎是
C:\Users\imf\Anaconda3\envs
,激活后,例如
python36
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
(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
现在
blender35
ntl
消失,无法激活,而
new36
显示并可以激活;搜索路径似乎是
C:\Anaconda3\envs\


问题:如何将所有环境移动到一个文件夹(和一个搜索路径)?我想要
C:\Anaconda3\envs\


我的猜测是康达和巨蟒之间有一些混淆,但我不知道要检查哪些文件来解决这个问题

此外,我在
C:\Users\myelf
找到了
.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:实际上是说

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


按照这个提示,我甚至无法激活
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
使用文件中的信息创建新环境

注意:该文件将包含程序包名称、版本和生成通道。对于构建通道所在的软件包,请使用pip进行安装

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

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

删除旧路径

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

del /S c:\Users\Myself\Anaconda3

希望这有帮助。

如果您已经在conda环境中创建了conda环境,是否会发生这种情况?这很奇怪。@juanpa.arrivillaga你是说如果我创建了
new36
,而
python36
处于活动状态?为什么
blender35
ntl
会消失?您已经发现了2个
conda
s。但是,当您调用
activate
时,它将运行在
%PATH%
中找到的第一个
activate
。运行
activate
后,它会更改
%PATH%
,现在从第二个根目录运行
conda info
。发生这种混淆是因为我可能在激活
python36
时创建了一个新环境吗?@Michael-否。第二个安装与其他安装完全不同。混合将在活动环境中创建第二个
环境。创建其中一些环境时,您已经安装了2个
root