很多第三方庫都是開源的,,幾乎都可以在github 或者 pypi上找到源碼。找到源碼格式大概都是 zip ,、 tar.zip,、 tar.bz2格式的壓縮包。解壓這些包,,進(jìn)入解壓好的文件夾,,通常會看見一個 setup.py 的文件,。打開命令行,進(jìn)入該文件夾,。運(yùn)行
python setup.py install
這個命令,,就能把這個第三庫安裝到系統(tǒng)里,也就是你的 Python 路徑,,windows大概是在 C:\Python2.7\Lib\site-packages,。
Linux會在 /usr/local/lib/python2.7/dist-packages。
Mac 應(yīng)該在 /Library/Python/2.7/site-packages,。如果是在 virtulenv環(huán)境下安裝,,這個包就被安裝在所建立的虛擬環(huán)境下的 site-packages/目錄下。想要卸載這些庫也很簡單,,進(jìn)入 site-packages,,直接刪掉庫文件就 OK 啦。當(dāng)然,,這些安裝可能有一點(diǎn)麻煩,,需要下載,解壓,,再運(yùn)行安裝,,卸載也不是很方便。有沒有一種工具,,可以幫外面管理這些庫呢,?
包管理器 (pip 和 easy_install)
現(xiàn)在很多編程語言,都帶有包管理器,,例如 Ruby 的 gem,,nodejs的npm。Python當(dāng)然也不例外,,擁有大名鼎鼎的 pip和 easy_install,。
前面說到的pypi就是一些 python第三庫所在的源,使用 pip 或者 easy_install 安裝模塊,,會搜索這個源,,然后自動下載安裝。比如我們需要安裝 flask 框架具體命令如下:
pip install flask #<=>easy_install flask
簡單吧,,一個簡單的命令就搞定,。卸載也很方便,例如我們需要卸載flask
pip uninstall flask
查看所安裝的包,,包括系統(tǒng)自帶的和手動安裝的
pip list
還可以搜索包
pip search flask
還可以重定向輸出項(xiàng)目使用的庫
pip freeze > requirements.txt
這樣就會把該環(huán)境下的第三方庫重定向到 requirements.txt文件內(nèi),,如果給別人安裝項(xiàng)目的依賴,只需要運(yùn)行:
pip install -r requirements.txt
很方便吧,。當(dāng)然,,有時候,,我們的網(wǎng)絡(luò)并不是那么順暢,pip是在線安裝的,,可不可以離線呢,?當(dāng)然可以啦,,pip install 的第一步,,就是在 pypi 上尋找包,然后下載到本地,。如果網(wǎng)絡(luò)不好,,可以先建一個本地的倉庫,把常用的包離線下載,。比如可以下載 flask 的源碼
pip intall flask-master.zip
同樣也可以安裝,。
虛擬環(huán)境相關(guān)安裝 當(dāng)然,上面介紹的,,其實(shí)也是很普通很常見的方式,,也算不上什么技巧。下面介紹的,,則是一些需要了解原理和解決非常規(guī)問題的技巧,。
使用Python,我們會喜歡用 virtualenv建立虛擬環(huán)境,,例如建立一個 venv的虛擬環(huán)境,。我們只需要 source進(jìn)去就可以使用pip安裝了??墒怯袝r候,,即使在虛擬環(huán)境下,使用了sudo的前綴(windows忽略),,那么安裝的庫不是在虛擬環(huán)境,,而是被安裝到系統(tǒng)下的site-package 目錄下了。
windows的用戶可能會很開心,,不需要注意這個問題,。當(dāng)然 windows 也同樣有著自己的問題。在 windows上安裝python,,一般是編譯好的二進(jìn)制包exe可執(zhí)行文件,。通常有 32位和64位的python。對于第三方庫,,本來32和64不會有太大的差別,。但是對于一些C寫的python庫,如mysqldb,,PIL,, pillow,,會發(fā)現(xiàn)使用 pip或者 easy_install 的方式會報(bào)錯:
Fixing python error: Unable to find vcvarsall.bat
原因大概是 windows上缺少一些 C編譯器東東。源碼需要編譯一下才能安裝,,此時 windows就很苦逼了,。當(dāng)然,有一些好心人,,幫您把常用的一些庫編譯成 exe 可執(zhí)行文件,,放到了這個站點(diǎn)。你只需要尋找對于版本的,,下載一鍵安裝,。
可是,還有一個問題,,下載 exe 文件,,運(yùn)行安裝,這個庫是被安裝到了系統(tǒng)的 site-package 目錄下,,如果我在windows 建立了venv虛擬環(huán)境,,這樣安裝不是歇菜了么?
別擔(dān)心,,這個文章的真正技巧,,就是為了解決這個問題的。我們來安裝64位的 mysqldb,。先下載 MySQL?python?1.2.5.win?amd64?py2.7.exe 在 windows 上,,用命令行進(jìn)入虛擬環(huán)境 venv。然后運(yùn)行
easy_install MySQL?python?1.2.5.win?amd64?py2.7.exe
完美解決,,在 venv 虛擬環(huán)境,,將mysqldb 庫安裝到了venv下。
有了上面三個方式,,幾乎涵蓋 python 所有平臺的第三方庫安裝,。不過話說回來,盡管 Python 是跨平臺,,開發(fā)環(huán)境,,還是盡量使用 Linux或者M(jìn)acOS,這兩個系統(tǒng)有更好的工具以及省去很多莫名其妙的問題,。
|