conda安裝python版本管理與虛擬環境設置

anaconda安裝

anaconda安裝後,python變爲python3,改爲python2.7的處理方法:

原因在於python的軟連接被修改,

/usr/bin/python -> /usr/local/python3/bin/python3

軟連接的查看可以使用以下命令:

ls -l /usr/bin/python

注意青色的爲軟連接,綠色的爲文件夾。

我們可以發現:

 /usr/bin/python2 -> python2.7

於是只需刪除python的軟鏈接,同時將python2.7鏈接到python即可。

先刪除默認的Python軟鏈接:

sudo rm /usr/bin/python

然後創建一個新的軟鏈接指向需要的Python版本:

sudo ln -s /usr/bin/python3.5 /usr/bin/python

爲什麼不用alias的原因

參考知乎未聞Code

問題的根源就在你的alias上面。

zsh 的alias的優先級是非常高的,它會首先替換爲等號後面的內容,然後再執行。那麼即使在虛擬環境下,在終端輸入python並回車以後,實際執行的代碼是:

/usr/local/bin/python3

你使用了絕對路徑打開了系統中的Python3。

而由於你沒有對pip 設定alias, 因此你使用pip 安裝requests的時候,它調用的是虛擬環境下面的pip,所以requests會正確安裝在虛擬環境下面。

若使用alias,則虛擬環境中python也只能是python2,影響使用。


conda管理虛擬環境的常用命令如下:

轉載至AlexInML

conda虛擬環境:conda create -n envname
conda激活虛擬環境:source activate envname
conda退出虛擬環境:source deactivate
conda列出所有虛擬環境:conda env list
conda克隆虛擬環境:conda create -n envname --clone evnname1
conda刪除虛擬環境:conda remove -n envname --all
conda虛擬環境安裝包:conda install -n envname package, 例如:conda install -n envname tensorflow-gpu=1.2.1

pip使用

(創建虛擬環境後如果直接用pip安裝python包,默認會使用全局pip,所以pip安裝的包會對所有環境生效。如果要安裝只對某個虛擬環境生效的python包,
(1)可以指定虛擬環境名稱:conda install -n envname tensorflow-gpu=1.2.1;
(2)也可以在創建虛擬環境的時候指定pip只對當前環境生效,參考鏈接

conda create -n superbad pip # 可以直接在虛擬環境中使用pip而不會影響全局庫
source activate superbad
pip install -e fnawesome  # installing into superbad site packages
ipython  # runs superbad ipython
python  # runs the environment's python with access to fnawesome
source deactivate
ipython # no access to fnawesome

python版本

如果系統中同時存在python2和python3,在用conda創建虛擬環境的時候可以指定使用哪個版本的python:

conda create -n new-env python=2.7 pip
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章