今天把python腳本和部署文檔給測試組部署時候,發現他們對於conda和pip的使用不夠清晰,同時環境和依賴常出現安裝版本錯誤等問題現從下面幾個方面介紹下相關使用:
一、anaconda的基本使用
1、通常,在conda環境中,我們用下面命令新建自己的環境:
conda create -n your_env_name python=X.X (2.7、3.6等)
2、查看有哪些conda環境:
conda env list 或 conda info -e
3、使用下面命令切換到該環境:(如果沒有加環境變量這些,沒有成功的話,進入anaconda的/bin目錄下,此處有activate,進入后執行命令)
source activate your_env_name(虛擬環境名稱)
4、使用下面命令查看環境中的包:
conda list
5、一般使用下面命令來裝包:
conda install -n your_env_name [package]
(或者進入環境直接conda install [package] 即可,eg: conda install tensorflow)
6、當我們安裝的包在conda中沒有時,需要用pip安裝
(注意此處有坑,下文細說),正常情況下,我們只需進入環境后,運行
pip install [package]
eg :pip install tensorflow
7、刪除某包:
conda remove --name your_env_name [package_name]
同理進入環境后直接 conda remove [package]即可 ,eg : conda remove numpy
8、關閉虛擬環境:
source deactivate
9、刪除虛擬環境
conda remove -n your_env_name(虛擬環境名稱) --all
二、為什么anaconda環境中,還需要用pip安裝包,此情況下用pip需要哪些注意項
1、在anaconda下用pip裝包的原因:盡管在anaconda下我們可以很方便的使用conda install來安裝我們需要的依賴,但是anaconda本身只提供部分包,遠沒有pip提供的包多,有時conda無法安裝我們需要的包,我們需要用pip將其裝到conda環境里。
2、用pip裝包時候需要哪些注意事項?
2.1 首先,我們需要判斷目前我們用的pip指令,會把包裝到哪里,通常情況下,pip不像conda一樣,他不知道環境,我們首先要確保我們用的是本環境的pip,這樣pip install時,包才會創建到本環境中,不然包會創建到base環境,供各個不同的其他conda環境共享,此時可能會產生版本沖突問題(不同環境中可能對同一個包的版本要求不同)
用下面命令查看我們此時用的pip為哪個環境:
which -a pip
(如base環境的pip可能在/root/anaconda3/bin/pip,,,,而其他conda環境的pip,可能在/root/anaconda3/envs/my_env/bin/pip)
(經試驗,anaconda4.8版本,在conda create新的環境時,已經默認在新環境裝了pip,此時source activate進入該環境后,用pip命令安裝的包,默認會裝在本環境中,不必擔心pip一個包后后會將其他環境的包改變版本的情況)
當然我們自己創建的conda環境里,可能沒有pip,此時進入自己的conda環境也會默認用base環境的pip,這就需要我們自己將pip安裝入本環境,盡量不要使用base的pip在其他環境裝包,這樣也會裝在base里,有產生版本沖突的可能(上文已講)。在自己conda環境安裝pip使用如下命令:
(進入環境后)
conda install pip
安裝好本環境的pip之后,在本環境中使用pip install安裝的包,就只在本conda中了,我們可以用conda list查看我們的包,同時pip安裝的包,conda list結果中的build項目為pypi......
三、安裝特定版本的包
conda用“=”,pip用“==”
conda install numpy=1.93 pip install numpy==1.93
讓我們用這些技巧,愉快的管理自己的conda環境吧~~