Python 第三方庫安裝技巧
Python
是一門優雅的語言,簡潔的語法,強大的功能。當然豐富的第三方庫,更能加速開發。那麼問題來了,如何安裝這些第三方庫(包)呢?
安裝第三方庫的方式其實不多。下面就介紹一些技巧。
原始碼安裝
很多第三方庫都是開源的,幾乎都可以在github
或者
pypi上找到原始碼。找到原始碼格式大概都是 zip
、 tar.zip
、 tar.bz2
格式的壓縮包。解壓這些包,進入解壓好的資料夾,通常會看見一個
setup.py
的檔案。開啟命令列,進入該資料夾。執行
python setup.py install
這個命令,就能把這個第三庫安裝到系統裡,也就是你的 Python
路徑,windows
C:\Python2.7\Lib\site-packages
。Linux
會在 /usr/local/lib/python2.7/dist-packages
。Mac
應該在 /Library/Python/2.7/site-packages
。如果是在 virtulenv
環境下安裝,這個包就被安裝在所建立的虛擬環境下的
site-packages/
目錄下。想要解除安裝這些庫也很簡單,進入 site-packages
,直接刪掉庫檔案就 OK 啦。當然,這些安裝可能有一點麻煩,需要下載,解壓,再執行安裝,解除安裝也不是很方便。有沒有一種工具,可以幫外面管理這些庫呢?
包管理器 (pip 和 easy_install)
現在很多程式語言,都帶有包管理器,例如 Ruby
的 gem
,nodejs
的npm
。Python
當然也不例外,擁有大名鼎鼎的
pip
和 easy_install
。
前面說到的pypi
就是一些 python
第三庫所在的源,使用 pip
或者
easy_install
安裝模組,會搜尋這個源,然後自動下載安裝。比如我們需要安裝 flask
框架具體命令如下:
pip install flask
或者
easy_install flask
簡單吧,一個簡單的命令就搞定。解除安裝也很方便,例如我們需要解除安裝flask
pip uninstall flask
檢視所安裝的包,包括系統自帶的和手動安裝的
pip list
還可以搜尋包
pip search flask
還可以重定向輸出專案使用的庫。
pip freeze > requirements.txt
這樣就會把該環境下的第三方庫重定向到 requirements.txt
檔案內,如果給別人安裝專案的依賴,只需要執行:
pip install -r requirements.txt
很方便吧。當然,有時候,我們的網路並不是那麼順暢,pip
是線上安裝的,可不可以離線呢?當然可以啦,pip install
的第一步,就是在
pypi
上尋找包,然後下載到本地。如果網路不好,可以先建一個本地的倉庫,把常用的包離線下載。比如可以下載 flask
的原始碼
pip intall flask-master.zip
同樣也可以安裝。
虛擬環境相關安裝
當然,上面介紹的,其實也是很普通很常見的方式,也算不上什麼技巧。下面介紹的,則是一些需要了解原理和解決非常規問題的技巧。
使用Python
,我們會喜歡用 virtualenv
建立虛擬環境,例如建立一個 venv
的虛擬環境。我們只需要
source
進去就可以使用pip
安裝了。可是有時候,即使在虛擬環境下,使用了sudo
的字首(windows
忽略),那麼安裝的庫不是在虛擬環境,而是被安裝到系統下的site-package
目錄下了。
windows
的使用者可能會很開心,不需要注意這個問題。當然 windows
也同樣有著自己的問題。在
windows
上安裝python
,一般是編譯好的二進位制包exe
可執行檔案。通常有 32位和64位的python
。對於第三方庫,本來32和64不會有太大的差別。但是對於一些C
寫的python
庫,如mysqldb
,PIL
,
pillow
,會發現使用 pip
或者 easy_install
的方式會報錯:
Fixing python error: Unable to find vcvarsall.bat
原因大概是 windows
上缺少一些 C
編譯器東東。原始碼需要編譯一下才能安裝,此時 windows
就很苦逼了。當然,有一些好心人,幫您把常用的一些庫編譯成 exe 可執行檔案,放到了這個站點。你只需要尋找對於版本的,下載一鍵安裝。
可是,還有一個問題,下載 exe
檔案,執行安裝,這個庫是被安裝到了系統的 site-package
目錄下,如果我在windows
建立了venv
虛擬環境,這樣安裝不是歇菜了麼?
別擔心,這個文章的真正技巧,就是為了解決這個問題的。我們來安裝64位的 mysqldb
。先下載 MySQL‑python‑1.2.5.win‑amd64‑py2.7.exe
在
windows
上,用命令列進入虛擬環境 venv
。然後執行
easy_install MySQL‑python‑1.2.5.win‑amd64‑py2.7.exe
完美解決,在 venv
虛擬環境,將mysqldb
庫安裝到了venv
下。
有了上面三個方式,幾乎涵蓋 python
所有平臺的第三方庫安裝。不過話說回來,儘管 Python
是跨平臺,開發環境,還是儘量使用
Linux
或者MacOS
,這兩個系統有更好的工具以及省去很多莫名其妙的問題。
文/人世間(簡書作者)
原文連結:http://www.jianshu.com/p/9acc85d0ff16
著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。