Anaconda的基本使用
Anaconda 使用指南
參考文章:html
概述
不少學習python的初學者甚至學了有一段時間的人接觸到anaconda或者其餘虛擬環境工具時以爲無從下手, 其主要緣由就是不明白這些工具究竟有什麼用, 是用來作什麼的, 爲何要這麼作, 好比筆者一開始也是不明白爲啥除了python以外我還須要這麼一個東西, 他和python到底有啥聯繫和區別, 爲啥能用來管理python.python
在使用過以後我才逐漸發現其實anaconda等環境管理工具究竟在作啥, 以及爲何咱們須要他們來管理咱們的python環境web
首先咱們須要先去了解Anaconda誕生的目的.再去了解Anaconda的使用方法.windows
Python自己
首先咱們須要從python自己提及, 從根源尋找問題, 咱們在使用python語言編寫程序以前須要下載一個python解釋器, 這纔是python的本體, 沒了python解釋器, 咱們即便寫了無比正確優雅的python腳本也沒辦法運行, 那這個解釋器在哪呢.就在你安裝python的地方,好比個人在C:\Users\Acring\AppData\Local\Programs\Python\Python36-32
安全

項目結構如上圖,這裏有咱們很熟悉的python.exe, 也就是Python解釋器異步
除此以外還有個很重要的東西, Lib, 也就是python包文件, 包括自帶的包和第三方包函數

Lib目錄如上圖, 這裏有python自帶的包, 如筆者經常使用的日誌包logging, 異步包 concurrent, 而全部的第三方包都放在site-packages文件夾裏面工具
瞭解了這些咱們就對整個python環境有了大概的瞭解, 其實最關鍵的, 一個python環境中須要有一個解釋器, 和一個包集合.post
解釋器
解釋器根據python的版本大概分爲2和3. python2和3之間沒法互相兼容, 也就是說用python2語法寫出來的腳本不必定能在python3的解釋器中運行.學習
包集合
包集合中包含了自帶的包和第三方包, 第三方包咱們通常經過pip或者easy_install來下載, 當一個python環境中不包含這個包, 那麼引用了這個包的程序不能在該python環境中運行.
好比說一個爬蟲腳本用到了第三方的requests包,而另外一臺計算機是剛剛裝好原始python的, 也就是說根本沒有任何第三方包, 那麼這個爬蟲腳本是沒法在另外一臺機器上運行的.
問題所在
python環境解釋完了, 那麼接下來就要說明這樣的環境究竟產生哪些問題, 由於anaconda正式爲了解決這些問題而誕生的
1.到底該裝 Python2 呢仍是 Python3
python2和python3在語法上是不兼容的, 那個人機器上應該裝python2仍是python3呢, 可能一開始選一個學習就行了, 可是若是你要開發的程序必須使用python2而不能使用python3,那這時候你就不得再也不下載一個python2, 那這時候環境變量該設誰的目錄呢, 若是仍是切換環境變量豈不是很麻煩.
2.包管理
若是我在本地只有一個python環境那我全部程序用到的各類包都只能放到同一個環境中, 致使環境混亂, 另外當我將寫好的程序放到另外一電腦上運行時又會遇到缺乏相關包, 須要本身手動一個個下載的狀況, 實在是煩人, 要是能每一個程序開發都選用不一樣的環境, 而開發好以後又能將該程序須要的環境(第三方包)都獨立打包出來就行了.
Anaconda
那麼接下來就到咱們的anaconda上場了, 先讓咱們安裝好Anaconda而後我再來告訴你如何用Anaconda一個個解決咱們上面的問題吧.
下載
推薦下載python3版本, 畢竟將來python2是要中止維護的.
安裝
- 雙擊Anaconda3-5.0.0-Windows-x86_64.exe文件
- 會出現以下的頁面
3.點擊install開始安裝,可能過程須要時間,耐心等待
4.點擊finish
配置環境變量:默認已經添加便可不添加
測試安裝是否成功:打開cmd窗口,錄入jupyter notebook指令,若是沒有顯示找不到命令且沒有報錯便可表示安裝成功!
按照安裝程序提示一步步安裝就行了, 安裝完成以後會多幾個應用
若是你不想了解「Anaconda雲」和「Anaconda支持」,則能夠不勾選「Learn more about Anaconda Cloud」和「Learn more about Anaconda Support」。

- Anaconda Navigtor :用於管理工具包和環境的圖形用戶界面,後續涉及的衆多管理命令也能夠在 Navigator 中手工實現。
- Jupyter notebook :基於web的交互式計算環境,能夠編輯易於人們閱讀的文檔,用於展現數據分析的過程。
- qtconsole :一個可執行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole 能夠直接顯示代碼生成的圖形,實現多行代碼輸入執行,以及內置許多有用的功能和函數。
- spyder :一個使用Python語言、跨平臺的、科學運算集成開發環境。
暫時先不用管, 瞭解一下就好了
最新的anaconda支持的python默認最新版本已是python3.7了,若是你想用python3.6(使用tensorflow模塊的時候,你會發現tensorflow這個模塊目前不支持python3.7),版本退回到3.6版本,具體步驟也很簡單。就是打開anaconda prompt ,而後輸入conda install python=3.6,而後等待提示(y/n),輸入y,等待十幾分鍾,就會提示done,這樣的話,就表示python3.7已經退回到python3.6了。
配置環境變量
若是是windows的話須要去 控制面板\系統和安全\系統\高級系統設置\環境變量\用戶變量\PATH
中添加 anaconda的安裝目錄的Scripts文件夾, 好比個人路徑是D:\Software\Anaconda\Scripts
, 看我的安裝路徑不一樣須要本身調整.
以後就能夠打開命令行(最好用管理員模式打開) 輸入 conda --version
若是輸出conda 4.4.11
之類的就說明環境變量設置成功了.
爲了不可能發生的錯誤, 咱們在命令行輸入conda upgrade --all
先把全部工具包進行升級
管理虛擬環境
接下來咱們就能夠用anaconda來建立咱們一個個獨立的python環境了.接下來的例子都是在命令行操做的,請打開你的命令行吧.
activate
activate 能將咱們引入anaconda設定的虛擬環境中, 若是你後面什麼參數都不加那麼會進入anaconda自帶的base環境,
你能夠輸入python試試, 這樣會進入base環境的python解釋器, 若是你把原來環境中的python環境去除掉會更能體會到, 這個時候在命令行中使用的已經不是你原來的python而是base環境下的python.而命令行前面也會多一個(base)
說明當前咱們處於的是base環境下.

建立本身的虛擬環境
咱們固然不知足一個base環境, 咱們應該爲本身的程序安裝單獨的虛擬環境.
建立一個名稱爲learn的虛擬環境並指定python版本爲3(這裏conda會自動找3中最新的版本下載)
conda create -n learn python=3

因而咱們就有了一個learn的虛擬環境, 接下來咱們切換到這個環境, 同樣仍是用activae命令 後面加上要切換的環境名稱
切換環境
activate learn
若是忘記了名稱咱們能夠先用
conda env list
去查看全部的環境
如今的learn環境除了python自帶的一些官方包以外是沒有其餘包的, 一個比較乾淨的環境咱們能夠試試
先輸入python
打開python解釋器而後輸入
>>> import requests
會報錯找不到requests包, 很正常.接下來咱們就要演示如何去安裝requests包
exit()
退出python解釋器
安裝第三方包
輸入
conda install requests
或者
pip install requests
來安裝requests包.
安裝完成以後咱們再輸入python
進入解釋器並import requests包, 此次必定就是成功的了.
卸載第三方包
那麼怎麼卸載一個包呢
conda remove requests
或者
pip uninstall requests
就行啦.
查看環境包信息
要查看當前環境中全部安裝了的包能夠用
conda list
導入導出環境
若是想要導出當前環境的包信息能夠用
conda env export > environment.yaml (這是一個路徑,好比:G:\test\environment.yaml)
將包信息存入yaml文件中.
當須要從新建立一個相同的虛擬環境時能夠用:好比修改一下這個文件裏面的兩個內容:打開.yaml文件先看一下內容:
conda env create -f environment.yaml (G:\test\environment.yaml)
其實命令很簡單對不對, 我把一些經常使用的在下面給出來, 相信本身多打兩次就能記住
activate // 切換到base環境
activate learn // 切換到learn環境
conda create -n learn python=3 // 建立一個名爲learn的環境並指定python版本爲3(的最新版本)
conda env list // 列出conda管理的全部環境
conda list // 列出當前環境的全部包
conda install requests 安裝requests包
conda remove requests 卸載requets包
conda remove -n learn --all // 刪除learn環境及下屬全部包
conda update requests 更新requests包
conda env export > environment.yaml // 導出當前環境的包信息
conda env create -f environment.yaml // 用配置文件建立新的虛擬環境
深刻一下
或許你會以爲奇怪爲啥anaconda能作這些事, 他的原理究竟是什麼, 咱們來看看anaconda的安裝目錄

這裏只截取了一部分, 可是咱們和本文章最開頭的python環境目錄比較一下, 能夠發現其實十分的類似, 其實這裏就是base環境. 裏面有着一個基本的python解釋器, lLib裏面也有base環境下的各類包文件.
那咱們本身建立的環境去哪了呢, 咱們能夠看見一個envs, 這裏就是咱們本身建立的各類虛擬環境的入口, 點進去看看

能夠發現咱們以前建立的learn目錄就在下面, 再點進去

與pycharm鏈接
在工做環境中咱們會集成開發環境去編碼, 這裏推薦JB公司的pycharm, 而pycharm也能很方便的和anaconda的虛擬環境結合
在Setting => Project => Project Interpreter
裏面修改 Project Interpreter , 點擊齒輪標誌再點擊Add Local爲你某個環境的python.exe解釋器就好了

D:\Software\Anaconda\envs\learn
, 能夠看到這時候下面的依賴包也變成了learn環境中的包了.接下來咱們就能夠在pycharm中愉快的編碼了.

結語
如今你是否是發現用上anaconda就能夠十分優雅簡單的解決上面所說起的單個python環境所帶來的弊端了呢, 並且也明白了其實這一切的實現並無那麼神奇.
固然anaconda除了包管理以外還在於其豐富數據分析包, 不過那就是另外一個內容了, 咱們先學會用anaconda去換一種方法管裏本身的開發環境, 這已是一個很大的進步了.