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

时间:2015-02-18 06:54:18

标签: environment-variables windows-7-x64 py2exe python-3.4 conda

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

因此,我没有耐心阅读和消化所有改变conda环境的巨型声音。 (我甚至不确定我使用的术语"环境"是否正确)。

我正在尝试安装py2exe(pip install py2exe)并且我收到了一个错误,并且在追溯中我注意到pip正在使用我位于E:\ Anaconda的旧的2.7 anaconda python。我和#34;新"或当前3.4 anaconda python位于E:\ Anaconda3 ......

所以我做的是使用Windows资源管理器将我的E:\ Anaconda文件夹重命名为E:\ poopAnaconda(右键单击,重命名等;使用win7 64)。然后在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种不同的方式可以激活和/或创建一个环境,但这些方法都不如此简单。

所以,这是一个"坏"改变conda环境的方法?我的意思是它到目前为止有效。但是,为什么它有用呢?

在我的天才突破之前:

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>

NICE !!

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

E:\Anaconda3>

1 个答案:

答案 0 :(得分:5)

这会有效,但我不推荐它。

在conda环境中,&#34;激活&#34;环境只是意味着将该环境放在PATH的前面,以便在您键入它们时首先获取该环境中的程序。在PATH上放置多个内容并移动它们也是有效的,因为在搜索PATH时只会跳过不存在的路径。

首先,你不应该安装两次Anaconda。相反,使用conda创建其他环境。

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

  • 如果您使用conda,您可能会感到困惑:Anaconda的每个安装都安装了不同的conda。这意味着管理每一个,你需要使用那个中的conda。使用错误的conda可能会导致问题(它不受支持)。使用一个Anaconda和环境,你可以使用conda install -n envname它会做正确的事情,因为只有一个conda。

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

  • PATH&#34;泄漏&#34; :如果您的PATH上同时拥有Anaconda和Anaconda3,则会在第二个中安装。不是第一个,它将拿起Anaconda3一个(因为PATH的工作方式是它搜索命令的所有目录,直到它找到它)。在OS X和Linux上source activate将从PATH中删除根环境以防止这种情况发生。这在Windows上还没有发生,但我们想要改变它。

  • 不便:移动目录比点击activate envname更容易吗?还要考虑如果您创建一个新环境,则必须将其添加到PATH才能使用此技巧。如果你善用conda,你将会创造很多环境。

  • 您可能会破坏环境:对于Windows而言,这并非完全如此,至少对于大多数软件包而言都是如此。在OS X和Linux上都是如此。移动环境可能会破坏它,因为在某些地方存在硬编码路径。所以你的poopAnaconda目录中的东西可能无法工作,直到你把它命名为Anaconda。