2014-11-17 118 views
0

我是Python新手,最近開始編寫一個腳本,該腳本實質上讀取MySQL數據庫,並通過將其上傳到Amazon Glacier來歸檔某些文件。我正在使用亞馬遜提供的boto模塊以及一些其他模塊。如何在Python中使用/集成第三​​方模塊

我注意到,在安裝和利用連接到外部服務的這些模塊時,我似乎一遍又一遍地重複相同的模式。首先,我編寫一個包裝模塊,它讀取我的全局配置值,然後定義一個連接函數,然後開始在該模塊中編寫執行各種任務的函數。例如,目前,我的boto包裝模塊名爲​​,它包含的功能如getConnectionglacierUpload。這裏有一個簡單的例子:

import config,sys,os 
import boto,uuid 

_awsConfig = config.get()['aws'] 

def getGlacierConnection(): 
    return boto.connect_glacier(aws_access_key_id=_awsConfig['access_key_id'], 
           aws_secret_access_key=_awsConfig['secret_access_key']) 


def glacierUpload(filePath): 

    if not os.path.isfile(filePath): 
    return False 

    awsConnect = getGlacierConnection()  

    vault = awsConnect.get_vault(_awsConfig['vault']) 

    vault.upload_archive(filePath) 

    return True 

我的問題是,我應該寫這些「包裝」模塊?這是消費這些第三方模塊的Pythonic方式嗎?這種方法對我來說很有意義,但是我不知道創建這些接口是否會讓我的代碼變得不便攜或模塊化,或者是否有更好的方法將這些不同的模塊集成到我的主腳本結構中。

+0

對不起,但你的解釋是相當抽象的。你能告訴我們一些代碼來更好地瞭解你在做什麼嗎? –

+0

我添加了一個簡單的例子,我的'boto'包裝模塊 – oliakaoil

回答

1

您正在使用模塊作爲附加。您導入它們然後使用它們。正如我所看到的,​​是一個模塊,它可以執行符合您需求的功能。

所以回答你cuestion:

我應該寫這些 「包裝」 模塊?,是的(你可以停止稱它們爲「包裝」),錯誤將是重寫那些已安裝的模塊。

這是消耗這些第三方模塊的Pythonic方式嗎?,是Python的方式。作者爲你使用(導入)編寫模塊。