簡體   English   中英

為什么Conda在激活環境后無法調用正確的Python版本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM