2016年7月19日 星期二

Python_pip

Python除了standard library之外,也有許多好用的第三方模組 (Module),例如科學運算常用的Numpy、Panda,俗語說「DRY, Don't Repeat Yourself」,別人已經寫好的東西,不用再花時間去重新寫。而且現在連安裝管理套件 (package)的模組都有,以下介紹其中一種比較好上手的安裝套件 pip

pip

  • pip可正常運作在Windows、Mac OS、Unix/Linux等作業系统上
  • 需要至少2.6+和3.2+的CPython版本
  • python 2.7.9 和3.4以后的版本已經內建pip程式,所以不需要另外安装。其他的版本可以使用以下命令進型安裝
  1. 下載   https://bootstrap.pypa.io/get-pip.py
  2. 安裝( Linux下需要root權限)
  3. 於command line模式下執     python get-pip.py
  4. 加入環境變數( Windows)
  5. 將 C:\Python34\Scripts 加進PATH

環境變數設定



使用方式

  • 安裝套件
pip help (列出 pip 使用範例)
pip install SomePackage (自動安裝最新版本)
pip install SomePackage==1.0.4 (指定版本)
pip install 'SomePackage>=1.0.4' (指定最小版本)
pip install https://github.com/pyinstaller/pyinstaller/tarball/develop
pip freeze (列出所有已安裝的套件)
C:\Users\cash.chien\PycharmProjects\element_number>pip freeze
alabaster==0.7.7
anaconda-client==1.4.0
anaconda-navigator==1.1.0
argcomplete==1.0.0
. . .

  • 更新套件
pip install -U SamePackage
  • 刪除套件
pip uninstall SomePackage


範例:以生成QRCode的套件為例
一開始在沒有安裝pyqrcode套件之前,會無法import pyqrcode 模組,

In[4]: import pyqrcode
Out:
Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2885, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-03967d533bd2>", line 1, in <module>
    import pyqrcode
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.1.4\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import

接著利用pip來安裝pyqrcode套件
在cmd下 (或PyCharm中的Terminal、powershell)  輸入 pip install pyqrcode

就會開始安裝
C:\Users\cash.chien\PycharmProjects\element_number>pip install pyqrcode
Collecting pyqrcode
  Downloading PyQRCode-1.2.1.zip (41kB)
    100% |████████████████████████████████| 51kB 445kB/s                                                                                       
Building wheels for collected packages: pyqrcode
  Running setup.py bdist_wheel for pyqrcode ... done
  Stored in directory: C:\Users\cash.chien\AppData\Local\pip\Cache\wheels\79\84\80\5909ca01732597bfd7d04d368689dc1c84736f9314fed2003a
Successfully built pyqrcode
Installing collected packages: pyqrcode
Successfully installed pyqrcode-1.2.1

看到Siccessfully installed pyqrcode-1.2.1就是安裝成功,有時候安裝不成功有很多原因,譬如我在安裝Pyinstaller套件時,就一直安裝不好,有時候是版本不同,或者套件本身有問題(像是不支援中文之類的...),遇到時只能Google來找尋解決方法了。

安裝好後就來help(pyqrcode)看看是否成功

In[10]: help(pyqrcode)

Out:
Help on package pyqrcode:

NAME
    pyqrcode

DESCRIPTION
    This module is used to create QR Codes. It is designed to be as simple and
    as possible. It does this by using sane defaults and autodetection to make
    creating a QR Code very simple.
    
    It is recommended that you use the :func:`pyqrcode.create` function to build the
    QRCode object. This results in cleaner looking code.
    
    Examples:
            >>> import pyqrcode
            >>> import sys
            >>> url = pyqrcode.create('http://uca.edu')
            >>> url.svg(sys.stdout, scale=1)
            >>> url.svg('uca.svg', scale=4)
            >>> number = pyqrcode.create(123456789012345)
            >>> number.png('big-number.png')
.
.
.


可以看到安裝成功,並有簡介跟使用範例等,接著就來使用pyqrcode做一個網址的QRCode試試看。

# pyqrcode 使用範例
#
from pyqrcode import QRCode 
url = QRCode('http://ccfml.blogspot.tw/') 
#輸出SVG格式檔案:url.svg ,縮放比為10
url.svg('url.svg', scale=10) 
#輸出PNG格式檔案:url.png ,縮放比為10
#url.png('url.png', scale=10)

執行完後在同個資料夾下產生了一個url.svg檔,如下。


藉由上面例子可以知道Python社群已經提供各式各樣的模組,光Python 3.x版的就有4萬多個,因此有甚麼需求都可以先搜尋看看。

Python 3 package list

Python3全部的package清單




沒有留言:

張貼留言