![](/img/trans.png)
[英]Why am I stuck with the system default Python 2 interpreter after activating a Python 3 Conda environment?
[英]Why Conda cannot call correct Python version after activating the environment?
我在 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
我遇到了完全相同的問題。 不知道我做了什么讓我陷入困境,但我用一個簡單的方法解決了它:
conda deactivate
conda activate foo_env
(如果您激活了多個環境,您可能需要多次運行conda deactivate
activate。)
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 基礎環境之上激活了我的環境。
停用基礎環境,然后激活我想要的環境,工作。
在這里遇到了同樣的問題,但是通過移出 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:\>
因此,在我的情況下,我之前的實習生將 anaconda 路徑附加到/etc/profile
路徑變量,這會覆蓋~/.bashrc
conda 設置,只需刪除/etc/profile
那些行即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.