庫library是一個泛稱,一般值作為文件形式存在的模組以及以資料夾形式存在的包的合成,這裡作了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也也可以安裝。
虛擬環境相關安裝
當然,上面介紹的,其實也是很普通很常見的方式,也算不上什麼技巧。以下介紹的,則是一些需要了解原理和解決非常規問題的技巧。
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,這兩個系統有更好的工具以及省去很多莫名其妙的問題。
更多Python第三方函式庫的安裝方法相關文章請關注PHP中文網!