Python 第三方庫安裝技巧

來源:互聯網
上載者:User

標籤:

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 的 gemnodejsnpmPython當然也不例外,擁有大名鼎鼎的 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庫,如mysqldbPIL, 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,這兩個系統有更好的工具以及省去很多莫名其妙的問題。

  • Introduction — The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you

    人世間? virtualenv.readthedocs.org →

  • Installation — To enable the use of pip from the command line, ensure the Scripts subdirectory of your Python installation is available on the system PATH. (This is not done automatically.)

    人世間? pip.pypa.io →


Python 第三方庫安裝技巧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.