import套件到你的python

星期四 16 May 2019   even  
教學

前言

Never Reinvent the Wheel,重複利用寫好的程式碼是加快開發速度的必須手段,除了上一章節的自訂函數外的另一個方式就是這篇要介紹的import。相較於自訂函數將一個python檔案(.py)中一大段程式碼打包成function的物件,import則是將一個或多個完整的python檔案打包成module(套件)的物件。import進來之後,我們就可以妥善的使用這些自己先前寫好,或他人事先開發好的套件。

python本身就具有許多內建的套件,與第三方套件可以直接import進來使用,本章節也會簡短的介紹常用的內建套件以及如何安裝第三方套件。

使用自己寫好的py檔

先新增一個檔案,命名為lets_party.py,包含以下程式碼:

__version__ = '0.0.1'
party_time = 'Now!'

def sayHi():
    '''
    say hi to your python
    '''
    print('Hi!')
    
def sayYay():
    print('Yay!')

def sayYo():
    print('Yo!')

def sayCheckout(name):
   print(f'Checkout! {name}!')

def lets_party(party_time,party_hour, party_words="let's party", *party_people, **party_info):
    print(f"It's {party_hour} of {party_time}:")
    print(party_words)
    print(f'{len(party_people)} people joined our party~')
    print(f'They are: {party_people}')
    print('I prepared the following stuff for this party:')
    for k in party_info:
        print(f'{k}: {party_info[k]}')
    print('Come and join us with the happy party time!')
    return 'What a Nice Party~'

if __name__ == '__main__':
    print(lets_party('2019/5/16','20:00','Check it out~','Mary','John','Jack', table=1,chair=4, tv=1, food='a lot'))

接著,在同一個目錄底下,建立你要運行的檔案,例如: import_tutorial.py,在這個檔案裡import我們剛剛建立的lets_party.py,這樣我們的環境中就會多了lets_party這個物件,可以查看一下是哪種類型,查看使用說明,如下:

import lets_party

print(type(lets_party))
print('*****************')
help(lets_party)

Help on module lets_party:

NAME
lets_party

FUNCTIONS
lets_party(party_time, party_hour, party_words="let's party", *party_people, **party_info)

sayCheckout(name)

sayHi()
say hi to your python

sayYay()

sayYo()

DATA
party_time = 'Now!'

VERSION
0.0.1

FILE
c:\OOOO\OOO\OOOO\OOOO\lets_party.py

現在,可以使用lets_party這個module底下所有的物件。要使用時,必須註記這些物件是來自lets_party,因此使用方式如下:

import lets_party

print(lets_party.party_time)
lets_party.sayHi()

Now!
Hi!

如果覺得每次都要打前面那一長串的module的名字很麻煩的話,可以將這個名字改成簡寫,如下:

import lets_party as lsp
print(lsp.party_time)

Now!

如果你只需要使用這個module裡的某部分功能,例如我只需要party_time時,可以使用以下程式碼:

from lets_party import party_time as pt
print(pt)

Now!

以上是如何使用自己先前寫好的單一.py檔的簡單教學,至於如何將自己撰寫的多個.py檔,放進一個module底下就不在本教學的範疇,有興趣請自行google研究。

使用內建module

python自生有很多內建module可以使用,直接import他們就可以使用了,簡單介紹我常用到的幾個內建module:

名稱 說明
time 基本時間 (主要以unix time呈現)
datetime 日期與時間
calendar 日曆
os 操作系統文件、目錄
sys 系統相關的參數以及函式
logging 紀錄系統
math 數學運算
random 隨機數
re 正規表達式
collections 提供內建容器(list、dict、set、tuple)外的替代選擇

由於種類繁多,每個module的使用說明都可以開一篇教學,因此我就只簡單介紹其中之一,os。如果變更現在的工作目錄、新增目錄、複製檔案、刪除檔案、移動檔案、查看目錄底下有哪些檔案等,就是使用os,如下:

import os

cur_dir = os.getcwd() #查看現在的工作目錄
print(cur_dir)
os.chdir('D:/test') #變更工作目錄
print(os.listdir()) #將工作目錄底下所有檔案名稱打包成list
os.mkdir('aaa') #新增目錄
print(os.listdir())
os.chdir('aaa')
cur_dir = os.getcwd()
print(cur_dir)

C:\Users\DB\Desktop\freelancerlife_docs\web_files
[]
['aaa']
D:\test\aaa

安裝、管理第三方module

python安裝第三方套件的方式非常容易,直接使用python的套件管理系統pip,在命令列界面中輸入pip install module_name,就可以直接安裝,如下,安裝pygame:

pip install pygame

Collecting pygame
Downloading https://files.pythonhosted.org/packages/ed/56/b63ab3724acff69f4080e54c4bc5f55d1fbdeeb19b92b70acf45e88a5908
/pygame-1.9.6-cp37-cp37m-win_amd64.whl (4.3MB)
|████████████████████████████████| 4.3MB 731kB/s
Installing collected packages: pygame
Successfully installed pygame-1.9.6

你也可以安裝特定版本的套件、更新套件、刪除套件,如下:

pip install pygame==1.9.5 #安裝指定版本
pip install pygame --upgrade #更新到最新版
pip uninstall pygame # 刪除套件

另外,python的開發者通常會將其程式運作所需的所有套件寫到requirements.txt內,這時候就使用以下指令將所有需要的套件一次安裝起來:

pip install -r requirements.txt

結語

以上就是關於import以及套件的簡單介紹,理解並且善用這個章節的內容之後,就可以開始開發python的程式。先針對你所需解決的任務,尋找相關的套件,在花時間學習各套件的使用方式,接著就可以開發出很不錯的程式了。但是要學習各式各樣的套件也是需要花上很多時間喔。

要提醒各位,在大量使用套件時,可能會出現套件衝突,因此許多python的教學最一開始教的就是建立虛擬環境。使用python的virtualenv建立不同的開發環境,彼此的套件是分開的,以避免不同開發環境的套件衝突。關於這部分,有興趣的直接google python virtualenv吧。

感謝你閱讀到這裡,我們下次見,Bye~

python新手教學
Why python
Hello Python!
This is a python - 基本數值運算與邏輯判斷
[Python, 的, list, 教學 ]
"python的字串教學"
python的迴圈與流程控制
python的(tuple)與{dict}
def 一個python的自訂函數:
import套件到你的python
python的嘗試try與錯誤error處理
Python之禪

相關文章:

>