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

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

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

所以我没有耐心阅读和消化改变 conda 环境的所有胡言乱语。 (我什至不确定我对“环境”一词的使用是否正确)。

我试图安装 py2exe (pip install py2exe) 并且收到错误,在回溯中我注意到 pip 使用的是位于 E:\Anaconda 的旧 2.7 anaconda python。我的"new"或当前 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输出的中间看到它)

按 Enter 键(对于 conda info -a)后稍有停顿,然后显示信息。我在输出中看到的唯一区别是有关许可证 pffffffff 的一些警告

此外,我的两个 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>

不错!!

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

E:\Anaconda3>

最佳答案

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

在 conda 环境中,“激活”环境只是意味着将该环境放在 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 “泄漏”:如果您的 PATH 上同时安装了 Anaconda 和 Anaconda3并且在第二个而不是第一个中安装了某些东西,它将选择 Anaconda3 (因为 PATH 的工作方式是在所有目录中搜索该命令直到找到它)。在 OS X 和 Linux 上 source activate将从 PATH 中删除根环境以防止这种情况发生。 Windows 上还没有出现这种情况,但我们想改变它。

  • 不便:移动目录真的比输入 activate envname 更容易吗? ?另请注意,如果您创建新环境,则必须将其添加到 PATH为了让这个技巧发挥作用。如果您充分利用 conda,您将创建许多环境。

  • 您可能会破坏环境:这对于 Windows 来说并不完全正确,至少对于大多数软件包来说是这样。在 OS X 和 Linux 上更是如此。移动环境可能会破坏它,因为某些地方有硬编码的路径。因此,在将 poopAnaconda 目录中的内容命名为“bake to Anaconda”之前,该目录中的内容可能无法正常工作。

关于environment-variables - 通过重命名文件夹方法轻松更改Conda环境(在Win7 64中)?可以接受吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28577705/

相关文章:

python - LoadLibrary(pythondll) failed error using py2exe教程

python - Py2Exe 的单个可执行文件

python - PyQt 和 py2exe : no sound from QSound after compiling to . exe

build - 计算makefile构建时间

linux - CMake 获取 HOSTNAME 环境变量

installation - 如何在 Windows 7 上安装 Windows Phone 8 SDK

java - 如何使用Java访问连接?

windows - 尝试编写批处理文件以管理员身份打开程序

cgi - 什么是所有标准的 CGI 环境变量?

javascript - 为什么带有个人访问 token 的 env 文件在我的 React 应用程序中不起作用?