1. 程式人生 > >python安裝第三方的包

python安裝第三方的包

第一種基本安裝方法

1 下載第三方包,解壓

2 在命令提示符裡輸入cmd,然後用cd進入到第三方包的路徑下

3 輸入Python setup.py build

4 輸入python setup.py install

看到包內的檔案在安裝即可……


第二種 用pip和virtualenv安裝


p可以很方便的安裝、解除安裝和管理Python的包。
virtualenv則可以建立多個獨立的虛擬環境,各個環境中擁有自己的python直譯器和各自的package包,互不影響。
pip和virtualenv可以很好的協同工作,同時使用這兩個工具非常方便。



一般先安裝pip,安裝好後,pip install virtualenv就可以自動從網上下載並安裝virtualenv了。然後virtualenv env1就可以建立一個名為env1的虛擬環境了,進入這個虛擬環境後,再使用pip install安裝其它的package就只會安裝到這個虛擬環境裡,不會影響其它虛擬環境或系統環境。

當需要將虛擬環境env1遷移或複製到另一個虛擬環境(可能不在同一臺機器上)env2時,首先仍然需要在目的機器上安裝pip和virtualenv,然後採用以下方法之一安裝其他的package:

  • 1.直接將env1裡的檔案全部複製到env2裡,然後修改涉及路徑的檔案。此種方法可能正常使用,但顯然不是好辦法。
  • 2.進入原虛擬環境env1,然後執行pip freeze > requirements.txt將包依賴資訊儲存在requirements.txt檔案中。然後進入目的虛擬環境env2,執行pip install -r requirements.txt,pip就會自動從網上下載並安裝所有包。
  • 3.pip預設會從pypi伺服器(http://pypi.python.org/simple)下載包的安裝檔案,如果目的機器無法連外網,則可以採用以下辦法:
    • 3.1搭建自己的pypi伺服器。專業的,可以使用第三方的軟體包來搭建一個完整的pypi映象伺服器,參考http://www.worldhello.net/2011/03/14/2357.html
      。更快速的方法只需要一條命令python -m SimpleHTTPServer即可完成搭建伺服器,具體的目錄結構可參考原pypi伺服器,簡而言之,就是把安裝檔案打包放入目錄即可。搭建好伺服器之後,在目的虛擬環境中,就可以使用pip來安裝了,命令如:pip install -i http://127.0.0.1:8000/ -r requirements.txt
    • 3.2如果你實在不想搭建pypi伺服器,也有辦法。首先將所有包的安裝檔案下載下來,可以手動下載,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然後自己修改requirements.txt檔案,將每一行改成對應的包的安裝檔案的路徑。最後在目的虛擬環境中使用pip安裝,如pip install -r requirements.txt即可。
    • 3.3還有一種途徑,就是pip提供的bundle選項。首先執行pip bundle MyEnv.pybundle -r requirements.txt,將生成一個MyEnv.pybundle檔案,該資料夾包含所有包的安裝檔案(注意必須字尾名必須是.pybundle),預設是重新從pypi伺服器下載安裝檔案的,如果願意,也可以利用3.1中的方法,指定本地的pypi伺服器。然後在目的虛擬環境中執行pip install MyEnv.pybundle即可。
  • 4.pip install還有許多有用的選項,如--download-cache=DIR可以指定下載安裝檔案時快取至DIR路徑,下次需要時則直接讀取快取檔案。具體選項可以執行pip help install得到詳細資訊。
  • 5.另外,還可以將自己的包上傳至pypi伺服器,分享給所有人。具體可參考http://guide.python-distribute.org/creation.htmlhttp://matrix.42qu.com/10734668

easy_install簡介:

easy_install是由PEAK(Python Enterprise Application Kit)開發的setuptools包裡帶的一個命令,所以使用easy_install實際上是在呼叫setuptools來完成安裝模組的工作。 Perl 使用者比較熟悉 CPAN,而 Ruby 使用者則比較熟悉 Gems;引導 setuptools ez_setup工具和隨之而生的擴充套件後的easy_install  “Cheeseshop”Python Package Index,也稱為 “PyPI”)一起工作來實現相同的功能。它可以很方便的讓您自動下載,編譯,安裝和管理Python包。

 

第三種 用Setuptools和virtualenv安裝

Setuptools簡介:

         setuptools Python Enterprise Application KitPEAK)的一個副專案,它 是一組Pythondistutilsde工具的增強工具(適用於 Python 2.3.5 以上的版本,64 位平臺則適用於 Python 2.4 以上的版本),可以讓程式設計師更方便的建立和釋出 Python 包,特別是那些對其它包具有依賴性的狀況。

   經常接觸Python的同學可能會注意到,當需要安裝第三方python包時,可能會用到easy_install命令。easy_install是由PEAK(Python Enterprise Application Kit)開發的setuptools包裡帶的一個命令,所以使用easy_install實際上是在呼叫setuptools來完成安裝模組的工作。

 

Setuptools安裝:

A. 使用ez_setup.py安裝

這是 setuptools 自豪的一種安裝方式,只需要一個大約 8K 作為的指令碼ez_setup.py,就能自動為使用者安裝包括 setuptools 自身在內的許多 Python 包。

(參考:http://bkeep.blog.163.com/blog/static/12341429020123395532879/)

使用這種方式,使用者只需要下載 ez_setup.py 並執行,就可以自動下載和安裝適合使用者當前 Python 版本的適當的 setuptools egg 檔案(當然,使用者需要 Python 2.3.5 以上的版本,64 位作業系統的使用者則需要 Python 2.4 以上的版本)。此外,這段指令碼還會將可執行的easy_install 指令碼安裝到使用者所有的作業系統 Python 可執行指令碼正常應該安裝的位置(例如,Windows 使用者會安裝到 Python 安裝目錄下的 Scripts 目錄中)。關於這種安裝方法的更詳細說明和注意事項,請參考其官方說明(見擴充套件閱讀)。簡單的安裝命令如下:

wget -q ez_setup.py下載地址(見擴充套件閱讀) 安裝完後,最好確保

B. 使用完整的安裝包安裝

當然,使用者也可以使用 setuptools 在 Python Cheese Shop 上釋出的合適的完整的釋出版本來安裝。對於使用 Windows 的使用者,這也是挺方便的方法。

 

下載完成後雙擊執行安裝檔案,即可在D:\Program Files\python2.7\scripts下安裝easy_install。包含一個easy_install.exe,然後進行環境變數設定,在系統環境變數中做如下設定:

(也就是將D:\Program Files\python2.7\scripts新增到環境變數中)

許多 Linux 發行版的官方包管理倉庫都包含 setuptools 的某個版本。例如,如果你跟我一樣使用Ubuntu ,那安裝 setuptools 只是簡單的進行如下操作:

# apt-get install python-setuptools

 

 

         Setuptools安裝好後就可以用easy_install安裝模組了

 

easy_install 使用方法:

    使用方法非常簡單,在命令列輸入“easy_install 引數”即可。

  a、通過模組名稱來安裝。setuptools會自動搜尋PyPI 以查詢最新版本的模組。如果找到的話,她會自動下載、編譯和安裝:例如

  easy_install SQLObject

  easy_install "python_dateutil==1.5"

  easy_install "python_dateutil>=1.5"

  說明,安裝過程可能需要許可權,如果是ubuntu的話,可以加上sudo

  b、指定查詢頁面("download page")來使用名稱和版本資訊來安裝或升級一個模組:

  easy_install -f (此處新增一個url,百科不讓加) SQLObject

  c、從指定模組下載地址來下載模組原始碼並在下載成功之後編譯安裝

  easy_install (此處新增一個模組下載url,百科不讓加,可參考擴充套件閱讀)

  d、在本地已經存在的egg檔案基礎上來安裝模組

  easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg

  e、升級一個已經安裝的模組到最新版本,如果在PyPI中這個模組有最新版本。

  easy_install --upgrade PyProtocols

  f、從原始碼中安裝模組(原始碼已經下載並解壓到當前資料夾下)(New in 0.5a9)

  easy_install .

  g、模組解除安裝 easy_install -m package-name (比如easy_install -m pylab)

  如果想刪除通過easy_install安裝的軟體包,比如說:MySQL-python,可以執行命令:

  easy_install -m mysql-python

注:此操作會從easy-install.pth檔案裡把MySQL-python的相關資訊抹去,剩下的egg檔案,你可以手動刪除。

 

用easy_install安裝networkx:

  

 

如果用方法a安裝,顯示download error,可轉用其它方法,如d

安裝完畢,進行測試

開啟python-command line,進行如圖輸入“import networkx as nx” "print nx",就有相關顯示,如果沒有成功,會提示不認識networkx類庫的

  

 

開發環境為eclipse的使用者,安裝一個新的python開發包後,import後不能使用包內的方法。

解決方法:

需要在Preferences-pyDev-Interpreter裡重新配置Python的編譯器,因為當前沒有包含新加進來的包

可以刪除掉,重新加上。

否則會導致import模組後,模組內的方法仍然不能呼叫。

 

參考資料:http://www.cnblogs.com/zhuyp1015/archive/2012/07/17/2596495.html

http://blog.csdn.net/moodytong/article/details/7282008

http://blog.163.com/yang_jianli/blog/static/161990006201151022355502/

http://www.cnblogs.com/kkgreen/archive/2012/08/03/2622251.html

 常用的第三方庫

如果說強大的標準庫奠定了python發展的基石,豐富的第三方庫則是python不斷髮展的保證,隨著python的發展一些穩定的第三庫被加入到了標準庫裡面,這裡有6000多個第三方庫的介紹:點這裡或者訪問:http://pypi.python.org/pypi?:action=index。下表中加粗並且標紅的都是我平時使用較多的一些第三方庫。(P.S.CSDN的這個表格功能太難用了,改HTML程式碼調整了好半天啊,才見得人!)

常用Python第三方庫

分類 庫名稱 庫用途
Web框架 Django 開源web開發框架,它鼓勵快速開發,並遵循MVC設計,我以前用過很多次,比較好用,開發週期短
ActiveGrid 企業級的Web2.0解決方案
Karrigell
\
bottle\bootstrap\

Flask  

簡單的Web框架,自身包含了Web服務,py指令碼引擎和純python的資料
庫PyDBLite
webpy 一個小巧靈活的Web框架,雖然簡單但是功能強大
CherryPy 基於Python的Web應用程式開發框架
Pylons 基於Python的一個極其高效和可靠的Web開發框架
Zope 開源的Web應用伺服器
TurboGears 基於Python的MVC風格的Web應用程式框架
Twisted 流行的網路程式設計庫,大型Web框架
Quixote Web開發框架
科學計算 Matplotlib 用Python實現的類matlab的第三方庫,用以繪製一些高質量的數學二維圖形
SciPy 基於Python的matlab實現,旨在實現matlab的所有功能
NumPy 基於Python的科學計算第三方庫,提供了矩陣,線性代數,傅立葉變換等等的解決方案
GUI PyGtk 基於Python的GUI程式開發GTK 庫
PyQt 用於Python的QT開發庫
WxPython Python下的GUI程式設計框架,與MFC的架構相似
Tkinter Python下標準的介面程式設計包,因此不算是第三方庫了o(∩_∩)o 
其它 BeautifulSoup 基於Python的HTML/XML解析器,簡單易用
PIL 基於Python的影象處理庫,功能強大,對圖形檔案的格式支援廣泛
MySQLdb 用於連線MySQL資料庫
cElementTree 高效能XML解析庫,Py2.5應該已經包含了該模組,因此不算一個第三方庫了
PyGame 基於Python的多媒體開發和遊戲軟體開發模組
Py2exe 將python指令碼轉換為windows上可以獨立執行的可執行程式
pefile Windows PE檔案解析器