
打算把公眾號和知乎專欄的文章搬運一點過來。?
歷史文章可以去關注我的公眾號:不二小段,或者知乎:段小草。
也歡迎來看我的視頻學Python↓↓↓
跟不二學Python

這篇文章可以作為Python入門的第一站

可以結合這期視頻來看,基本上是這期視頻的文字版教程了

說起Python入門第一步,很多人會說是Hello World。殊不知擋在眾多小白同學面前的一座大山便是安裝Python。安裝Python有什么難的,可要真從和之爭說起,夾雜著諸如Windows下如何安裝lxml庫,如何管理Python 和Python 之類的問題,工作量其實還是不小的。說起來我也是2、3混用了很久,初學時很長一段時間都停留在自帶的idle編輯器,中間也因為編碼問題專門轉到過Ubuntu上去。現在的日常是本地Pycharm+遠程服務器的Jupter Notebook。
今天寫這篇文章,面向的是電腦里連Python都還沒裝的同學,推薦一種目前就我個人體驗來看,最簡單舒服省心的Python環境配置。當然了,如果電腦里混裝了多版本很頭疼,或者還在用idle+cmd進入Python命令行這樣反人類的入門方式,不妨跟著試一試。
今天的主角是Anaconda,之后會再寫文章詳細介紹Jupyter的配置(本地和服務器配置,包括Win Server和Linux Server,還有多用戶版本的Jupyterhub配置,當然拖更遙遙無期,急用的同學就自行谷歌,有問題可以私信我…)。
Anaconda是Python的一個開源發行版本,主要面向科學計算。我們可以簡單理解為,Anaconda是一個預裝了很多我們用的到或用不到的第三方庫的Python。而且相比于大家熟悉的pip install命令,Anaconda中增加了conda install命令。當你熟悉了Anaconda以后會發現,conda install會比pip install更方便一些。比如大家經常煩惱的lxml包的問題,在Windows下pip是無法順利安裝的,而conda命令則可以,后面會詳細展示。
Anaconda的官網在這里 。與Python相對應,Anaconda的版本分為Anaconda2和Anaconda3,大家可以自行下載日常常用的版本,提供32位和64位下載。(和混用的同學也不要擔心,后面我們會講具體的版本管理)
當然了,如果你真的選擇去官網下載Anaconda的話會發現,速度慢到令人發指;當你等待了30多分鐘下載安裝完以后想要安裝或者更新其中的包時,又會發現其速度慢到會斷開連接安裝報錯…
(劃重點)正確的姿勢是從國內清華大學開源軟件鏡像站進行下載并配置鏡像。
下載地址
選擇相應的版本進行下載就好(直接找2017年最新版的Anaconda2或Anaconda3)。
下載完成后安裝。C盤不吃緊的同學可以一路next,C盤如果吃緊最好換個地方,日積月累Anaconda會占用不小的地方…
建議作者在文章里加上 anaconda安裝路徑不要出現空格
下載過程中除了安裝位置外,還有兩個需要確認的地方。


第一個勾是是否把Anaconda加入環境變量,這涉及到能否直接在cmd中使用conda、jupyter、ipython等命令,推薦打勾,如果不打勾話問題也不大,可以在之后使用Anaconda提供的命令行工具進行操作;第二個是是否設置Anaconda所帶的Python 為系統默認的Python版本,這個自己看著辦,問題不大。
一路安裝完成以后,就可以打開cmd測試一下安裝結果。
分別輸入python、ipython、conda、jupyter notebook等命令,會看到相應的結果,說明安裝成功。(python是進入python交互命令行;ipython是進入ipython交互命令行,很強大;conda是Anaconda的配置命令;jupyter notebook則會啟動Web端的ipython notebook)

需要注意的是jupyter notebook命令會在電腦本地以默認配置啟動jupyter服務,之后會再談到這個。

Anaconda安裝成功之后,我們需要修改其包管理鏡像為國內源。
簡單來說就是在cmd中分別運行這兩個命令就好了。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes
設置好鏡像以后,我們繼續進行環境管理。
因為我現在安裝的是最新版Anaconda3,其自帶的Python版本為,如果我們需要添加版本的Python,可以進行如下操作。(同理,如果有人安裝的是Anaconda2需要添加Python ,之后操作里的改為或即可)
conda create -n py27 python=
其中py27是新添加環境的名字,可以自定義修改。
之后通過activate py27和deactivate py27命令激活、退出該環境。(Linux和OS系統的命令似乎是source activate和source deactivate)
activate py27

在激活新環境后,我們所做的操作便都是在新環境下的,包括pip命令來安裝第三方庫。我們來試一下pip安裝lxml。
pip install lxml


不出所料…失敗了…如果你執意要自己解決這個問題,會很復雜,至少我在小白階段直接放棄了解決這個問題…
那么正確的做法是什么呢?一條命令就夠了。
conda install -n py27 lxml


當然了,對于可以正常安裝的庫,自然可以使用pip命令。

最后,我們可以通過conda info -e命令查看已有的環境。
通過conda remove -n env_name --all來刪除指定的環境(如果不添--all參數,而是指明某個庫名,則是刪除該庫)。
比如我現在要刪除py35這個環境。

彩蛋1
由于我們現在安裝的是Anaconda3,之后又新添加了Python 環境,但是Python 環境中安裝了Anaconda自帶的科學計算環境,Python 中卻沒有,那么如何為新添加的環境也裝上Anaconda的科學計算包呢,沒必要一個一個來,更沒有必要再去安裝Anaconda2了,只需:
conda install -n py27 anaconda
但是這會安裝非常多,非常多,非常多的包,慎用。
彩蛋2
我們已經說完了Anaconda中的包管理,那么既然Anaconda中可以使Python 和共存,Jupyter Notebook是否可以呢?

當然可以。
在這里我們不展開來介紹Jupyter Notebook,因為后面還會專門再寫一篇,大家可以先初步了解。多版本的Python或者R等語言,在Jupyter中被稱作kernel。
如果想要給Jupyter添加多個Python版本的kernel,有兩種做法。
如果這個Python版本已經存在(比如我們剛才添加的py27環境),那么你可以直接為這個環境安裝ipykernel包。即:
conda install -n py27 ipykernel
然后激活這個環境,輸入
python -m ipykernel install --user


如果所需版本并不是已有的環境,可以直接在創建環境時便為其預裝ipykernel。
如:
conda create -n py27 python= ipykernel
PS 如果想要在創建新版本環境時直接裝上其他庫,像這里的ipykernel一樣直接附在后面就可以了。之后同樣是激活環境并添加kernel。
PPS 這個命令生成的其實是一個JSON文件,可以直接查看并修改。

希望大家從此不再因為選擇版本、安裝Python、管理環境、添加第三方庫(能用conda用conda,不能用conda用pip)、選擇IDE(單文件Jupyter,項目組織開Pycharm)等等雜事所困擾,專心于代碼。
(當然了,有一些庫不論conda和pip都無法直接安裝,只能下載.whl,這里不再贅述了,小白同學遇到這種問題的時候,應該也有能力自己解決這種問題了)
祝進步,祝愉快!