··參考:Anaconda完全入門指南
在 Python 的編程過程中您可以會遇到如下場景:
- 我的電腦上安裝了 Python3 但是剛剛接手的項目是 Python2 的某筐,我該怎么辦?需要重新安裝 Python 嗎冠跷?
- 對于深度學習項目南誊,您如何配置不同的環(huán)境以匹配不同的框架(如 Pytorch,MXNet蜜托,TensorFlow)抄囚?
- 如何將已經(jīng)配置好的環(huán)境遷移到其他電腦上,而無需重新配置環(huán)境橄务?
- 如何直接在 Jupyter Notebook 中切換環(huán)境幔托?
??這么多問題?該怎么辦蜂挪?其實柑司,這些問題迫肖,只要您安裝 Anaconda3 即可迎刃而解锅劝!
關(guān)于軟件的安裝攒驰,按照圖示提示即可。本文主要介紹如何解決上述問題故爵。本文以主要著眼于 Windows10 系統(tǒng)玻粪,其他系統(tǒng)是類似的。
1 Anaconda 基礎(chǔ)
- 查看
conda
版本
Windows 用戶請打開 “Anaconda Prompt”诬垂;macOS 和 Linux 用戶請打開 “Terminal”(“終端”)進行操作劲室。
conda --version
終端上將會以 conda 版本號 的形式顯示當前安裝 conda 的版本號,如:conda 4.8.2
结窘。
- 更新
conda
至最新版本
conda update conda
執(zhí)行命令后很洋,conda
將會對版本進行比較并列出可以升級的版本。同時隧枫,也會告知用戶其他相關(guān)包也會升級到相應(yīng)版本喉磁。
- 查看
conda
幫助信息
conda --help # 或者 conda -h
- 卸載
conda
① Linux 或 macOS
rm -rf ~/anaconda3
即刪除Anaconda的安裝目錄。根據(jù)安裝的Anaconda版本選擇相應(yīng)的卸載命令官脓。
② Windows
控制面板 → 添加或刪除程序 → 選擇“Python X.X (Anaconda)” → 點擊“刪除程序”
注意:Python X.X:即 Python 的版本协怒,如:Python 3.6。
2 使用命令行進行環(huán)境管理
如果您在安裝 Anaconda 時將其添加到了電腦的環(huán)境變量卑笨,可以在命令行直接輸入 activate
激活環(huán)境孕暇。否則,需要使用完整的路徑激活環(huán)境比如:
C:\Users\xinet\anaconda3\Scripts\activate
該路徑是您的 Anaconda3 所在目錄赤兴,即:
運行該命令妖滔,終端便會多一個 base
的提示:
最好不要在 base
環(huán)境中安裝或者配置一些包之類的,它是 Python 的基礎(chǔ)環(huán)境桶良,為了更好的管理 Python 環(huán)境座舍,需要創(chuàng)建屬于自己的環(huán)境。
2.1 創(chuàng)建新環(huán)境
conda create --name <env_name> <package_names>
也可以簡寫為 conda create -n <env_name> <package_names>
艺普。其中 <env_name>
與 <package_names>
分別表示創(chuàng)建的環(huán)境名以及環(huán)境中的包名簸州。建議以英文命名,且不加空格歧譬,名稱兩邊不加尖括號 <>
岸浑。
- 如果要安裝指定的版本號,則只需要在包名后面以
=
和版本號的形式執(zhí)行瑰步。如:conda create --name python2 python=2.7
矢洲,即創(chuàng)建一個名為 “python2” 的環(huán)境,環(huán)境中安裝版本為 2.7 的 python缩焦。 - 如果要在新創(chuàng)建的環(huán)境中創(chuàng)建多個包读虏,則直接在
<package_names>
后以空格隔開责静,添加多個包名即可。如:conda create -n python3 python=3.5 numpy pandas
盖桥,即創(chuàng)建一個名為 “python3” 的環(huán)境灾螃,環(huán)境中安裝版本為 3.5 的 Python,同時也安裝了 numpy 和 pandas揩徊。
提示:默認情況下腰鬼,新創(chuàng)建的環(huán)境將會被保存在 /Users/<user_name>/anaconda3/env
目錄下,其中塑荒,<user_name>
為當前用戶的用戶名熄赡。
2.2 切換環(huán)境
需要注意本文介紹的激活方法僅僅適用于 conda 4.6 及其以上版本。
conda activate <env_name> # 切換環(huán)境
2.3 列出全部環(huán)境
列出全部環(huán)境可以是 conda env list
或者 conda info -e
或者 conda info --envs
齿税。結(jié)果中星號“*”所在行即為當前所在環(huán)境彼硫。macOS系統(tǒng)中默認創(chuàng)建的環(huán)境名為“base”。
2.4 復(fù)制環(huán)境
<copied_env_name>
即為被復(fù)制/克隆環(huán)境名凌箕。<new_env_name>
即為復(fù)制之后新環(huán)境的名稱拧篮。
conda create --name <new_env_name> --clone <copied_env_name>
2.5 刪除環(huán)境
conda remove --name <env_name> --all
其中 <env_name>
為被刪除環(huán)境的名稱。
2.6 導(dǎo)入導(dǎo)出環(huán)境
如果想要導(dǎo)出當前環(huán)境的包信息可以用
conda env export > environment.yaml
將包信息存入 yaml
文件中陌知。當需要重新創(chuàng)建一個相同的虛擬環(huán)境時可以用
conda env create -f environment.yaml
3 使用命令行進行管理包
3.1 查找可供安裝的包版本
- 精確查找
conda search --full-name <package_full_name>
--full-name
為精確查找的參數(shù)他托。<package_full_name>
是被查找包的全名。
- 模糊查找
conda search <text>
其中 <text>
是查找含有此字段的包名仆葡。例如:conda search py
即查找含有 py
字段的包赏参,有哪些版本可供安裝。
3.2 獲取當前環(huán)境中已安裝的包信息
conda list
執(zhí)行上述命令后將在終端顯示當前環(huán)境已安裝包的包名及其版本號沿盅。
3.3 安裝包
- 在指定環(huán)境中安裝包
conda install --name <env_name> <package_name>
<env_name>
即將包安裝的指定環(huán)境名把篓。<package_name>
即要安裝的包名。例如:conda install --name python2 pandas
即在名為“python2”的環(huán)境中安裝 pandas 包腰涧。
- 在當前環(huán)境中安裝包
conda install <package_name>
- 使用 pip 安裝包
?使用場景:當使用 conda install
無法進行安裝時韧掩,可以使用 pip 進行安裝。例如:see 包窖铡。
pip install <package_name>
注意:pip 只是包管理器疗锐,無法對環(huán)境進行管理。因此如果想在指定環(huán)境中使用 pip 進行安裝包,則需要先切換到指定環(huán)境中,再使用 pip 命令安裝包何暇。pip 無法更新 Python磅崭,因為 pip 并不將 python 視為包媒殉。pip 可以安裝一些 conda 無法安裝的包;conda 也可以安裝一些 pip 無法安裝的包盛嘿。因此當使用一種命令無法安裝包時娜饵,可以嘗試用另一種命令关划。
- 從 http://Anaconda.org 安裝包
?使用場景:當使用 conda install
無法進行安裝時小染,可以考慮從 http://Anaconda.org 中獲取安裝包的命令,并進行安裝贮折。
3.4 卸載包
- 卸載指定環(huán)境中的包
conda remove --name <env_name> <package_name>
<env_name>
即卸載包所在指定環(huán)境的名稱裤翩。<package_name>
即要卸載包的名稱
- 卸載當前環(huán)境中的包
conda remove <package_name>
3.5 更新包
- 更新所有包
conda update --all
建議:在安裝 Anaconda 之后執(zhí)行上述命令更新 Anaconda 中的所有包至最新版本,便于使用脱货。
- 更新指定包
conda update <package_name>
<package_name>
為指定更新的包名岛都。更新多個指定包,則包名以空格隔開振峻,向后排列。如:conda update pandas numpy matplotlib
即更新 pandas择份、numpy扣孟、matplotlib 包。
4 設(shè)置清華鏡像
參考:anaconda | 鏡像站使用幫助 | 清華大學開源軟件鏡像站 ...
為了提高 pip 與 conda 安裝軟件包的速度荣赶,我們需要設(shè)置清華鏡像凤价。對于 pip,不同系統(tǒng)設(shè)置的方法是一樣的拔创,即:
$ pip install --upgrade pip -U # -U == --user
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
而對于 conda利诺,在 Windows10 中這樣設(shè)置:
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --set show_channel_urls yes
在 Ubuntu18.04 中設(shè)置 conda,需要借助 vscode 修改用戶目錄下的 .condarc
剩燥,即 code ~/.condarc
慢逾,然后添加如下內(nèi)容:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
5 在 Jupyter Notebook 中切換環(huán)境
我們知道 Jupyter Notebook 是一個十分強大的工具,需要在 Jupyter Notebook 中切換環(huán)境灭红,則需要配置 ipykernel
侣滩,比如,創(chuàng)建一個 TensorFlow 的環(huán)境:
$ conda install ipykernel
$ python -m ipykernel install --user --name tensorflow --display-name "tensorflow"
效果如下:
如果沒有達到預(yù)期效果变擒,可以繼續(xù)安裝 jupyter
即可:
$ pip install jupyter
更多精彩見 6 搭建一個友好的可塑性計算機視覺工具集君珠。
討論
在 Windows10 的 PowerShell 不能直接切換 conda 的環(huán)境,您需要在其中輸入:
$ cmd
才可以切換環(huán)境娇斑。具體見下圖:
圖7 中不能直接使用 conda 的原因是我的電腦沒有把 conda 添加的電腦的系統(tǒng)環(huán)境變量之中策添,所以需要使用絕對路徑啟動 base
環(huán)境。