2015年8月21日 星期五

Python 的模組與套件

 

對任何作業系統以及程式語言而言,管理「擴充套件」是非常重要的一環。有了擴充套件,可以更容易地操作電腦,程式設計師寫程式也變得更輕鬆。


pyenv – A Python version manager. Installs different versions and flavors of Python interpreters.

pyvenv – A tool to create isolated virtual environments from a Python interpreter. Ships with Python from 3.4.

virtualenv – Creates virtual environments, available in PyPi.

python: pyenv, pyvenv, virtualenv - what's the difference?
http://masnun.com/2016/04/10/python-pyenv-pyvenv-virtualenv-whats-the-difference.html




第三方函數庫 - PyPI

PyPI (the Python Package Index) 是一個Python語言的第三方函數庫,有兩種方式可以獲取並安裝PyPI中的package:
  • 使用pip install PackName 自動安裝
  • 下載package源碼後使用python setup.py install 手動安裝





Python的套件管理程式 - pip

建議以 pip 為主,有另一個比較雞肋的easy_install。如果使用 pip 無法安裝成功時不妨直接進入套件目錄,看該套件是否有提供 setup.py 檔案並輸入 python setup.py 。

1. 利用apt-get安裝、更新pip
sudo apt-get install python-pip
sudo install -U pip

2. 利用pip列出所有已安裝的python套件
pip list

3. 利用 pip 安裝套件
pip [套件名稱]
pip '[套件名稱]==[版本]'
pip 'virtualenv==1.6.3'
pip install install http://example.com/virtualenv-1.6.4.zip
pip install git+https://github.com/simplejson/simplejson.git
pip install svn+ssh://svn.zope.org/repos/main/zope.interface/trunk/

4. 利用 pip 移除套件 : pip 支援較多自動化清理的工作(不像easy_install不支援移除)。
pip uninstall [套件名稱]




虛擬環境 - Virtualenv

Virtualenv 可以隔離函數庫需求不同的專案,讓它們不會互相影響。在建立並啟動虛擬環境後,透過 pip 安裝的套件會被放在虛擬環境中,專案就可以擁有一個獨立的環境。Virtualenv 可以幫你做到:
  • 在沒有權限的情況下安裝新套件
  • 不同專案可以使用不同版本的相同套件
  • 套件版本升級時不會影響其他專案

1. 安裝 virtualenv
pip install virtualenv

2. 建立一個虛擬環境
virtualenv my_python_env --python=python3.4

3. 初始化虛擬環境
source ./my_python_env/bin/activate
需要注意的是,之後在不同的 shell 環境下,或者在新的視窗操作時,都要重新執行上述指令。

4. 安裝套件於 virtualenv 中
pip install vimpyre
接著可以在 ./my_python_env/lib/python(版號)/site-packages 發現剛剛安裝的 vimpyre 及其相關套件。








References

Python 套件管理程式簡介
https://www.openfoundry.org/tw/tech-column/8536-introduction-of-python-extension-management-tools

Python 的虛擬環境及多版本開發利器─Virtualenv 與 Pythonbrew
http://www.openfoundry.org/tw/tech-column/8516-pythons-virtual-environment-and-multi-version-programming-tools-virtualenv-and-pythonbrew






技術提供:Blogger.