繁体   English   中英

如何在Python中使用/集成第三​​方模块

[英]How to consume/integrate third-party modules in Python

我是Python的新手,最近开始编写一个脚本,该脚本本质上是读取MySQL数据库并通过将某些文件上传到Amazon Glacier来存档一些文件。 我正在使用Amazon提供的boto模块以及其他一些模块。

我注意到在安装和利用这些连接到外部服务的模块时,我似乎一遍又一遍地复制相同的模式。 首先,我编写一个包装器模块,该模块读取我的全局配置值,然后定义一个连接函数,然后开始在该模块中编写执行各种任务的函数。 例如,目前,我的boto包装器模块名为awsbox ,它包含诸如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

我的问题是,我应该编写这些“包装”模块吗? 这是使用Python方式使用这些第三方模块的方法吗? 这种方法对我来说很有意义,但我想知道创建这些接口是否会使我的代码不那么易于移植或模块化,或者是否有更好的方法将这些不同的模块集成到我的主脚本结构中。

您正在按预期使用模块。 您导入它们,然后使用它们。 如我所见, awsbox是包含符合您需求的功能的实现的模块。

因此,请回答您的提示:

我应该编写这些“包装”模块吗? ,是的(您可以停止将它们称为“包装器”),错误是重写那些已安装的模块。

这是使用Python方式使用这些第三方模块的方法吗? ,是Python的方式。 作者编写模块供您使用(导入)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM