依照Python官方的方法手工安裝python和tensorflow以及一個個手工安裝眾多的模塊是很麻煩的,也常出現難纏的奇葩問題。
這個文章帶領大家完全從零開始利用Anaconda一下子把Python和上百個科學計算模塊都裝好,並且開始用Python真正的編寫代碼。
1. Anaconda介紹Anaconda [ænə'kɑndə] 水蟒。它是一個Python語言的免費增值發行版,用於進行大規模數據處理, 預測分析, 和科學計算, 致力於簡化模塊的管理和部署。
免費增值:有免費版也有收費版,或者軟體免費但有內購,總之,發行者還是希望用戶付錢的。Anaconda是由Anaconda公司開發和發行的,可以完全免費使用,但該公司還有其他收費產品如Anaconda Enterprise(企業版)和Training(培訓與認證)等
Python發行版:由於Python是開源的,就像小米華為都基於Android安卓開發了各自的手機系統一樣,也有很多公司對Pytho進行改造和再包裝,然後免費發行出來或者商業銷售。當然,這些第三方的發行版或多或少都會做一些有價值的改進,否則也就沒有存在的必要了。常見的Python發行版除了Anaconda外還有WinPython、Python(x,y)等,但易用度和流行度都不如Anaconda。
2. 模塊化開發我們實際編程開發中使用的Python並不僅僅是指從Python官方網站下載的那個安裝包所帶來的內容,也不是僅僅是指使用Python官方的那些編程命令來寫代碼。
我們不會真的自己親手去寫每一個功能,那樣的話全世界會有成千上萬的程式設計師反反覆覆寫著同樣的功能同樣的代碼,——這太浪費了。
我們可以把自己曾經寫好的一段代碼重新拿來在新的編程項目裡面使用,就好像把一張照片複製一份放到新的相冊一樣。同樣我們擴大到更多人,大家把自己寫好的一段段代碼貢獻出來,互相分享,互相借鑑(複製),這樣一來,我們真實的編程開發就變成了用各種代碼片段來搭積木了。這就是模塊化。
全世界的開發者已經為Python開發了數以萬計的各種模塊,實現千變萬化的功能,我們可以把這些模塊自由組合成各種軟體和程序。
那麼問題也來了,怎麼安裝別人編寫的模塊?安裝後怎麼卸載?怎麼更新已經用到的模塊?如果Jack開發的A模塊裡面又使用了Tom開發的B模塊,這種情況又該怎麼辦?
我們需要一個模塊管理工具,就像手機的App store應用商店那樣來幫我們管理各種各樣的模塊。
在編程領域,並不會使用一個有界面的軟體來做模塊管理,因為程式設計師們更喜歡直接輸入命令代碼,比如 shangdian anzhuang wangzherongyao(讓應用商店安裝一個王者榮耀)。
在Anaconda中就自帶了這樣一個模塊管理器,它的名字不叫shangdian,而是叫做conda,後面我們會學到具體怎麼召喚它出來幹活。
Anaconda的商店還自帶了「模塊全家桶」,當大家安裝Anaconda的時候,默認就把超過150個數據科學和機器學習相關的常用模塊都安裝好,這就讓我們省了很多事。
3. 下載與安裝直接進入Anaconda官方站點https://www.anaconda.com/,然後點擊右上角【Download】按鈕,進入下載頁面之後選擇Windows版本或者MacOS蘋果電腦版本,然後點擊左邊Python3.6版本的Download按鈕就會開始下載了。
因為有數百個模塊打包在一起,所以文件比較大,請慢慢等待。
也可以從清華鏡像站點:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下載,強烈推薦。
下載後直接安裝,一步一步都使用默認選項不修改即可(VS code可以skip跳過)。windows下這個安裝過程可能很慢,需要十幾分鐘。
安裝完成後,打開命令行工具(windows的Anaconda Prompt[prɒmpt],Mac下使用終端),輸入 conda info回車,應該得到類似下面的信息。
Windows10要使用Anaconda Prompt命工具,在【所有程序列表-Anaconda3下面】,或者直接在小娜搜索框裡輸入Anaconda也可以找到它。MacOS直接使用系統的命令行工具在【全部程序-實用工具-終端】。
如果你是專業人士,更多不同版本的安裝包在這裡:https://docs.anaconda.com/anaconda/packages/pkg-docs
4. 數據科學全家桶在命令行工具輸入 conda list然後回車,在列表中尋找是否有下面幾個模塊,這些我們在後面都會經常用到:
Numpy 基礎的科學計算庫,可以用它做各種矩陣運算。
Pandas 基於Numpy的數據分析工具,擅長處理數據。
Scipy 是Python中核心的科學計算工具包,包含了像積分、插值、統計、圖像等等很多工具,與Numpy緊密結合。
Scikit-learn 機器學習庫,包含了大量的機器學習算法和數據集,很容易上手使用。
Matplotlib 知名的圖表繪製工具,用於數據可視化幫助我們理解數據和監視機器學習的過程。
Seaborn 基於matplotlib的更方便好用的數據可視化工具。
5. 使用Condaconda是模塊管理工具(商店),我們先嘗試用它來安裝著名的深度學習框架tensorflow。
在終端或者prompt裡面輸入命令 conda install tensorflow,然後會出現 Solvingenvironment轉圈好一會請耐心等待,然後出現很多文字表示哪些內容將要被下載和安裝:
我們輸入y確認開始。然後就會看到很多下載和安裝進度。過一會最後會顯示 done表示完成。
如果遇到出錯,可以重新 conda install tensorflow再試幾次就會成功了。
下面是更多的一些conda命令:
conda info 查看conda自身的信息
conda update conda 更新升級conda自己
conda install xxx 安裝某個模塊
conda update xxx 更新升級某個模塊
conda --help 顯示幫助文字內容
conda list 顯示所有已經安裝的模塊
conda remove xxx 刪除某個已經安裝的模塊
python --version 顯示python的版本
更多常用conda命令看這裡:https://conda.io/docs/_downloads/conda-cheatsheet.pdf
6. 使用Anaconda navigatorAnaconda還自帶了一個有界面的工具管理箱Anaconda navigator,如下圖:
在Home裡面可以看到各種已經安裝的有用的工具,尤其是jupyter lab和jupyter notebook,在後續我們都會一直使用,現在你也可以點進去看一下。
Environment環境裡面可以看到我們已經安裝的各種模塊。
Python版本 :Python這個程式語言(本質也是個軟體程序)一直在不斷升級更新,比如我們使用上面的 python--version看到的版本是3.6.5,過幾個月可能就會升級到3.6.8甚至3.8、4.0之類。但是,我們現在寫的代碼是用的3.6.5的標準規則,升級之後難免會有些變化,甚至導致我們現在寫的代碼在明年就會有問題。
模塊版本:當然我們編程的時候還會引用很多其他人發布的模塊,而這些模塊如果升級了,我們的代碼也可能在模塊的新版本裡面就不能正常運行。
Environment環境:我們編寫的代碼依賴於當時的python版本和所有引用的模塊版本才能正常運行,這些版本的約束就是python編程的Environment環境,如果環境變了就可能會出問題;同樣如果我們以後要修改以前的舊代碼,也要再返回到舊的Environment環境才能順利修改。如果我們切換不同的環境,conda命令(比如安裝、刪除等)都會只針對這個環境來操作。所以我們可以在環境A使用python2.7的語法編程,在環境B使用python3.6的語法。
Channel渠道:是指conda install命令從哪裡下載需要安裝的模塊包。默認都是從Anaconda下載的。
7. Hello world!學習任何程式語言的開始都是從讓計算機輸出一行 hello world!文字開始的。 我們從Anaconda navigator的Home打開Jupyter notebook。
Jupyter [ˈdʒʌpaɪtɚ]是一個完全生造的詞,可能是從jupiter木星/丘比特一詞演化得到的。
Jupyter notebook其實是打開一個網頁,但很像是文件管理器,你可以在這裡創建自己的文件,並編寫代碼。
右上角New按鈕可以創建Python3代碼、文字文件或者文件夾。如圖我在桌面Desktop這裡創建了一個Untitled Folder文件夾。 點擊文件夾的小圖標可以Rename改名。
改名之後點進去文件夾,然後New一個Python 3文件。 在輸入框中輸入 print('Hello world!'),然後按【shift+回車】,這行代碼就會被運行,下面顯示出Hello world!
當前這個代碼文件還是叫Untitled,你可以直接點擊上面紅線指示的Untitled文字修改文件名。返回到剛才的文件夾頁面,可以看到這個.ipynb文件。
後續我們會使用Jupyter notebook帶領大家一起學習Python編程和機器學習的知識內容。
8. 相關資源常用命令:
https://conda.io/docs/_downloads/conda-cheatsheet.pdf
Anaconda官網:
https://www.anaconda.com/
相關單詞術語解釋:
https://conda.io/docs/glossary.html
幫助文檔:
https://docs.anaconda.com/anaconda/user-guide/getting-started
以上就是本文的全部內容,希望對大家的學習有所幫助。如果覺得文章不錯,動手轉發支持一下哦!
感謝您的閱讀!想了解更多有關技巧,請關注我的微信公眾號「R語言和Python學堂」,我將定期更新相關文章。同時也歡迎大家積極投稿,促進交流。
我的專欄: