困惑如何在python中导入模块

时间:2010-08-02 05:21:17

标签: python module

如果我想使用第三方模块,如python s3模块(boto http://boto.s3.amazonaws.com/index.html)或http://developer.amazonwebservices.com/connect/entry.jspa?externalID=134

下载.py文件后,我该怎么办?

导入模块时python解释器在哪里看?

是否有“轻量级”安装模块的方式,这样可以更轻松地部署到服务器?

2 个答案:

答案 0 :(得分:1)

查看the import statement reference,这是一篇冗长而详尽的描述。 简单的方法是在sys.path中包含模块的位置。

我只引用了起始段落:

  

一旦知道模块的名称(除非另有说明,术语“模块”将指代包和模块),搜索模块或包可以开始。检查的第一个地方是sys.modules之前导入的所有模块的缓存。如果在那里找到该模块,那么它将在导入的步骤(2)中使用。

     

如果在缓存中找不到该模块,则然后搜索sys.meta_path (可以在PEP 302中找到sys.meta_path的规范)。该对象是查找器对象的列表,通过使用模块名称调用它们的find_module()方法,查询它们是否知道如何加载模块。如果模块恰好包含在一个包中(由名称中存在一个点表示),则给出find_module()的第二个参数作为 path 属性的值。父包(一直到要导入的模块名称中的最后一个点)。如果查找程序可以找到该模块,它将返回一个加载程序(稍后讨论)或返回None。

     

如果sys.meta_path上的任何查找程序都找不到该模块,则会查询一些隐式定义的查找程序。 Python的实现因隐式元路径查找器的定义而异。 他们所有人都定义的那个是处理sys.path_hookssys.path_importer_cachesys.path 的人。

答案 1 :(得分:0)

它会查找您当前正在使用的目录。例如,如果您尝试从/test/my_file.py内导入,则可以将模块放在/test/中,只需import module_name