2017-05-02

安裝 Python 3rd Party Library

Python 的 library 好像有幾種名字,目前還不確定這些是不是都是指一樣的東西。
  • Library 函式庫
  • Module 模組
  • Package  套件
所以目前可能會混用 Library 函式庫與 Package 套件。

3rd Party Library 是影響一個語言是否受歡迎的一項重要因素。

Python 的 3rd Party Library 平台在 PyPI(Python Package Index),目前已經有超過10萬個 package。

安裝套件

Python 提供了類似 Linux 套件的安裝機制,pip。


不確定 package 是否已經安裝,可以直接使用 import 指令來檢查,只要執行沒有出現任何錯誤,表示已經安裝。
import pyautogui
在程式中使用(import)尚未下載安裝的 package 時,會得到 ModuleNotFoundError。
ModuleNotFoundError: No module named 'pyautogui'
利用 Scripts/pop.exe 可以安裝或升級 package,pip 同時會下載並安裝必要的 package。
C:\Users\Neil>pip install pyautogui
Collecting pyautogui
  Downloading PyAutoGUI-0.9.36.tar.gz (46kB)
    100% |████████████████████████████████| 51kB 204kB/s
Collecting pymsgbox (from pyautogui)
  Downloading PyMsgBox-1.0.6.zip
Collecting PyTweening>=1.0.1 (from pyautogui)
  Downloading PyTweening-1.0.3.zip
Collecting Pillow (from pyautogui)
  Downloading Pillow-4.1.1-cp36-cp36m-win32.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 431kB/s
Collecting pyscreeze (from pyautogui)
  Downloading PyScreeze-0.1.9.tar.gz
Collecting olefile (from Pillow->pyautogui)
  Downloading olefile-0.44.zip (74kB)
    100% |████████████████████████████████| 81kB 1.4MB/s
Installing collected packages: pymsgbox, PyTweening, olefile, Pillow, pyscreeze, pyautogui
  Running setup.py install for pymsgbox ... done
  Running setup.py install for PyTweening ... done
  Running setup.py install for olefile ... done
  Running setup.py install for pyscreeze ... done
  Running setup.py install for pyautogui ... done
Successfully installed Pillow-4.1.1 PyTweening-1.0.3 olefile-0.44 pyautogui-0.9.36 pymsgbox-1.0.6 pyscreeze-0.1.9

C:\Users\Neil>
安裝完成後,再執行 import pyautogui 就不會出現錯誤訊息,也就是安裝成功了。

升級套件

C:\Users\Neil>pip install -U pyautogui
Requirement already up-to-date: pyautogui in d:\_work\python361\lib\site-packages
Requirement already up-to-date: pymsgbox in d:\_work\python361\lib\site-packages (from pyautogui)
Requirement already up-to-date: PyTweening>=1.0.1 in d:\_work\python361\lib\site-packages (from pyautogui)
Requirement already up-to-date: Pillow in d:\_work\python361\lib\site-packages (from pyautogui)
Requirement already up-to-date: pyscreeze in d:\_work\python361\lib\site-packages (from pyautogui)
Requirement already up-to-date: olefile in d:\_work\python361\lib\site-packages (from Pillow->pyautogui)

C:\Users\Neil>

套件衝突

在建立自己的 py 檔案時,千萬不要用已知的套件名稱,例如 math.py 或者 sys.py,如果這麼做之後又呼叫 import math, sys,這時 import 的是你自己建立的 math.py 與 sys.py,而不是 Python 內建的套件了。

可以用以下的指令查出 Python 的套件位置。
import sys
print(sys.path)
'''
[
 '...', # 目前目錄
 '...\\python361\\Lib\\idlelib',
 '...\\python361\\python36.zip',
 '...\\python361\\DLLs',
 '...\\python361\\lib',
 '...\\python361',
 '...\\python361\\lib\\site-packages']
'''
---
---
---

沒有留言:

張貼留言