Why Conda cannot call correct Python version after activating the environment?
我在Linux下具有以下conda环境:
1 2 3 4 5 | $ conda info -e # conda environments: # py33 /u21/coyotito/.anaconda/envs/py33 root * /u21/coyotito/.anaconda |
然后使用以下命令创建
1 | $ conda create -n py33 python=3.3 anaconda |
问题是当我激活
1 2 3 4 5 6 7 8 | [coyotito@pearl ~]$ source activate py33 (coyotito)[coyotito@pearl ~]$ python --version Python 2.7.10 :: Anaconda 2.1.0 (64-bit) (coyotito)[coyotito@pearl ~]$ conda info -e # conda environments: # py33 /u21/coyotito/.anaconda/envs/py33 root * /u21/coyotito/.anaconda |
即它仍在调用旧的python。另请注意,括号下的提示不是
1 2 | (coyotito)[coyotito@pearl ~]$ which python ~/.anaconda/bin/python |
在新环境中代替python:
1 | ~/.anaconda/envs/py33/bin/python3.3 |
如何解决此问题?
更新
我在
1 | export PATH=$HOME/.anaconda/bin:$PATH |
我遇到了完全相同的问题。不知道我是如何陷入困境的,但是我用一个简单的方法解决了这个问题:
1 2 | conda deactivate conda activate foo_env |
TLDR;
1 2 3 4 5 | # deactivate Conda environment # (until even base environment is deactivated) conda deactivate # activate your environment conda activate your_env_name_goes_here |
试试这个
激活环境A,然后使用以下命令检查Python包的位置。
python -c"import sys; print(sys.executable)"
激活另一个环境,假设环境B并重新运行上面的python命令。如果conda未使用正确的Python版本,则很可能在两个环境中运行上述命令都将打印相同的路径。
我的conda安装未使用正确的版本,因为我已在conda基本环境之上激活了我的环境。
先停用基本环境,然后再激活我想要的环境。
在这里也有同样的问题,但是通过移出anaconda可执行目录,可以调用正确的python。我在一个目录中,该目录包含与Anaconda2一起安装的python可执行文件。
示例:
1 2 3 4 5 6 7 8 9 | (py35) C:\\Anaconda>python --version Python 2.7.11 :: Anaconda 4.0.0 (64-bit) (py35) C:\\Anaconda>cd .. (py35) C:\\>python --version Python 3.5.2 :: Anaconda 4.2.0 (64-bit) (py35) C:\\> |
所以在我的情况下,在我之前的实习生将anaconda路径附加到