为什么Conda在激活环境后无法调用正确的Python版本?

时间:2016-04-20 03:15:39

标签: python anaconda

我在Linux下有以下conda环境:

$ conda info -e
# conda environments:
#
py33                     /u21/coyotito/.anaconda/envs/py33
root                  *  /u21/coyotito/.anaconda

使用此命令创建py33

$ conda create -n py33 python=3.3 anaconda

问题是当我激活py33时,它仍然无法调用Python 3.3版。

[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。另请注意,括号下的提示不是(py33)

(coyotito)[coyotito@pearl ~]$ which python
~/.anaconda/bin/python

在新环境中代替python:

~/.anaconda/envs/py33/bin/python3.3

如何解决此问题?

更新

~/.bash_profile中的我的PATH环境如下所示:

export PATH=$HOME/.anaconda/bin:$PATH

4 个答案:

答案 0 :(得分:10)

TLDR;

# 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基本环境之上激活了我的环境。

先停用基本环境,然后再激活我想要的环境,

答案 1 :(得分:6)

我有完全相同的问题。不知道我是怎么陷入困境的,但是我用一个简单的方法解决了这个问题:

conda deactivate
conda activate foo_env

答案 2 :(得分:5)

使用同样的问题登陆这里,但是通过移出anaconda可执行文件目录,调用了正确的python。我在一个目录中,其中包含与Anaconda2一起安装的python可执行文件。

示例:

(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:\>

答案 3 :(得分:2)

因此,在我的情况下,我之前的实习生将 anaconda 路径附加到 /etc/profile 中的路径变量,这会覆盖 ~/.bashrc 中的 conda 设置,只需删除 /etc/profile 中的那些行即可。