通过重命名文件夹方法轻松更改 Conda 环境(在 Win7 64 中)?可以接受吗?

Easily changing Conda environment (in Win7 64) by renaming folder method? acceptable?

这种改变 conda 环境的绝妙方法是否会在以后破坏某些东西?

所以我没有耐心通读和消化不断变化的 conda 环境的所有废话。 (我什至不确定我对术语 "environment" 的使用是否正确)。

我在尝试安装 py2exe(pip install py2exe)时出现错误,在回溯中我注意到 pip 使用的是位于 E:\Anaconda 中的旧 2.7 anaconda python。我的 "new" 或当前的 3.4 anaconda python 位于 E:\Anaconda3...

所以我所做的是使用 windows 资源管理器(右键单击、重命名等;使用 win7 64)将我的 E:\Anaconda 文件夹重命名为 E:\poopAnaconda。然后在 cmd 提示符下输入

E:\Anaconda3>conda info -a

然后神奇地重命名后,conda 信息现在显示 3.4.1.final.0 作为我的 python 版本,我的环境现在成功地位于 E:\Anaconda3 !!! (您可以在 cmd 输出的中途看到它)

按下回车键后稍作停顿(对于 conda info -a)然后显示信息。我在输出中看到的唯一区别是关于许可证 pfffffff

的一些警告

此外,我的两个 anaconda 文件夹都列在 PATH 中:

...E:\Anaconda;E:\Anaconda\Scripts;E:\Anaconda3;E:\Anaconda3\Scripts

In the FAQ,有 8 种不同的方法可以激活 and/or 创建环境,其中 none 与此方法一样简单。

那么,这是改变 conda 环境的 "bad" 方式吗?我的意思是它到目前为止有效。但是,为什么它起作用了?

在我的天才突破之前:

E:\Anaconda3>conda info -a
Current conda install:

             platform : win-64
        conda version : 3.8.4
  conda-build version : 1.8.2
       python version : 2.7.8.final.0
     requests version : 2.5.1
     root environment : E:\Anaconda  (writable)
  default environment : E:\Anaconda
     envs directories : E:\Anaconda\envs
        package cache : E:\Anaconda\pkgs
         channel URLs : http://repo.continuum.io/pkgs/free/win-64/
                        http://repo.continuum.io/pkgs/free/noarch/
                        http://repo.continuum.io/pkgs/pro/win-64/
                        http://repo.continuum.io/pkgs/pro/noarch/
          config file : None
    is foreign system : False

# conda environments:
#
root                  *  E:\Anaconda

sys.version: 2.7.8 |Anaconda 2.1.0 (64-bit)| (default...
sys.prefix: E:\Anaconda
sys.executable: E:\Anaconda\python.exe
conda location: E:\Anaconda\lib\site-packages\conda
conda-build: E:\Anaconda\Scripts\conda-build.exe
conda-convert: E:\Anaconda\Scripts\conda-convert.exe
conda-develop: E:\Anaconda\Scripts\conda-develop.exe
conda-env: E:\Anaconda\Scripts\conda-env.exe
conda-index: E:\Anaconda\Scripts\conda-index.exe
conda-metapackage: E:\Anaconda\Scripts\conda-metapackage.exe
conda-pipbuild: E:\Anaconda\Scripts\conda-pipbuild.exe
conda-skeleton: E:\Anaconda\Scripts\conda-skeleton.exe
user site dirs:

CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
PATH: C:\Program Files (x86)\RSA SecurID Token Common;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsP
owerShell\v1.0\;e:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;e:\Program Files\AMD\ATI.ACE\Core-Static;E:\Python34_64bit;E:\Anaconda;E:\Anaconda\Scripts;E:\Anaconda3;E:\Anaconda3\Scripts
PYTHONHOME: <not set>
PYTHONPATH: <not set>

License directories:
    C:\Users\Kardo Paska\.continuum
    C:\Users\Kardo Paska\AppData\Roaming\Continuum
    E:\Anaconda\licenses
License files (license*.txt):
Package/feature end dates:
E:\Anaconda3>

之后:

E:\Anaconda3>conda info -a
Current conda install:

             platform : win-64
        conda version : 3.7.0
  conda-build version : 1.8.2
       python version : 3.4.1.final.0
     requests version : 2.4.1
     root environment : E:\Anaconda3  (writable)
  default environment : E:\Anaconda3
     envs directories : E:\Anaconda3\envs
        package cache : E:\Anaconda3\pkgs
         channel URLs : http://repo.continuum.io/pkgs/free/win-64/
                        http://repo.continuum.io/pkgs/pro/win-64/
          config file : None
    is foreign system : False

# conda environments:
#
root                  *  E:\Anaconda3

sys.version: 3.4.1 |Anaconda 2.1.0 (64-bit)| (default...
sys.prefix: E:\Anaconda3
sys.executable: E:\Anaconda3\python.exe
conda location: E:\Anaconda3\lib\site-packages\conda
conda-build: E:\Anaconda3\Scripts\conda-build.exe
conda-convert: E:\Anaconda3\Scripts\conda-convert.exe
conda-develop: E:\Anaconda3\Scripts\conda-develop.exe
conda-index: E:\Anaconda3\Scripts\conda-index.exe
conda-metapackage: E:\Anaconda3\Scripts\conda-metapackage.exe
conda-pipbuild: E:\Anaconda3\Scripts\conda-pipbuild.exe
conda-skeleton: E:\Anaconda3\Scripts\conda-skeleton.exe
user site dirs:

CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
PATH: C:\Program Files (x86)\RSA SecurID Token Common;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsP
owerShell\v1.0\;e:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;e:\Program Files\AMD\ATI.ACE\Core-Static;E:\Python34_64bit;E:\Anaconda;E:\Anaconda\Scripts;E:\Anaconda3;E:\Anaconda3\Scripts
PYTHONHOME: <not set>
PYTHONPATH: <not set>

WARNING: could not import _license.show_info
# try:
# $ conda install -n root _license
E:\Anaconda3>

不错!!

E:\Anaconda3>pip install py2exe
Downloading/unpacking py2exe
Installing collected packages: py2exe
Successfully installed py2exe
Cleaning up...

E:\Anaconda3>

这会起作用,但我不推荐它。

在 conda 环境的上下文中,"activating" 环境只是意味着将该环境放在 PATH 的前面,以便在您键入时首先从该环境中获取程序。将多个东西放在 PATH 上并移动它们也可以,因为在搜索 PATH 时会跳过不存在的路径。

首先,您不应该安装 Anaconda 两次。相反,使用 conda 创建额外的环境。

  • 您没有使用 conda:Anaconda 的优势之一是管理环境的 conda 包管理器。最好选择一个 Anaconda 安装作为基础环境,并创建另一个作为 conda 环境(例如,如果您选择 Anaconda3 作为基础,请创建 Python 2 环境 conda create -n py2 python=2 anaconda) .然后 activate py2deactivate

  • 如果你用的是conda,可能会搞糊涂:每次安装Anaconda都会安装不同的conda。这意味着要管理每一个,您需要使用其中的 conda。使用错误的 conda 可能会导致问题(实际上并不支持)。对于一个 Anaconda 和环境,您可以使用 conda install -n envname 并且它会做正确的事情,因为只有一个 conda。

但即使忽略这一点,关于您的天才想法,一些问题将是:

  • PATH "leak through":如果你的 PATH 上同时安装了 Anaconda 和 Anaconda3,并且安装了某些东西第二个但不是第一个,它将选择 Anaconda3 一个(因为 PATH 的工作方式是它在所有目录中搜索命令,直到找到它为止)。在 OS X 和 Linux source activate 将从 PATH 中删除根环境以防止这种情况发生。这在 Windows 上还没有发生,但我们想改变它。

  • 不方便:移动目录真的比键入 activate envname 更容易吗?还要考虑,如果您创建一个新环境,则必须将其添加到 PATH 才能使此技巧起作用。如果您充分利用 conda,您将创建许多环境。

  • 您可能会破坏环境:这对于Windows 来说并不完全正确,至少对于大多数软件包而言是这样。在 OS X 和 Linux 上非常正确。移动环境可能会破坏它,因为在某些地方有硬编码的路径。所以在你将它命名为 Anaconda 之前,你的 poopAnaconda 目录中的东西可能无法工作。