2012-10-31 200 views
0

我在Django项目中导入和使用Python的dnspython或easyzone模块时出现问题。我也在DJango以外的地方尝试过这个脚本,所以我很确定这个问题与框架无关。Python'模块'对象没有属性错误 - 导入模块

我有一个简单的脚本,将打开并解析区域文件的dns记录里面。我没有问题导入easyzone或DNS模块,但是当我尝试访问任何方法里面我得到这个错误:

Traceback (most recent call last): 
    File "fabfile.py", line 6, in <module> 
    z = easyzone.zone_from_file('example.com', '/var/namedb/example.com') 
AttributeError: 'module' object has no attribute 'zone_from_file' 

我已经安装了dnspython,容易通过的easy_install没有问题的安装。我可以在我的脚本的顶部无误地导入模块,它甚至向我展示了IDE帮助程序中库的路径。但是,当试图访问easyzone或dns中的任何方法时,出现错误,IDE上的代码完成也不会列出任何导致我相信这是路径问题或我如何导入它们的方法。

这里是我的代码而失败:

import os 
import csv 
import easyzone 
import dns 

z = easyzone.zone_from_file('example.com', '/var/namedb/example.com') 

在代码中,我可以清楚地看到这些方法存在的模块里面看,我究竟做错了不能够访问它们?

回答

0

您需要更正导入;从开发商sourcecode hosting homepage

from easyzone import easyzone 
z = easyzone.zone_from_file('example.com', '/var/namedb/example.com') 
+0

妈的,我知道这是愚蠢的......我非常新和即将Python从PHP,在主要的区别是什么只是在2种方法导入模块?为什么不能“导入easyzone”自动加载所有内容? – xXPhenom22Xx

+1

@ xXPhenom22Xx:'import easyzone'只导入顶级模块,将其添加到具有相同名称的本地名称空间。 '从easyzone import easyzone'接收包含在顶层'easyzone'模块*中的名为'easyzone' *的对象,并将该*添加到本地名称空间,同样名称。这个特殊的例子有点令人困惑,因为这个特定包的结构。另一种方法是使用'import easyzone',然后使用'easyzone.easyzone.zone_from_file(..)'。 –

+0

非常感谢您帮助noob – xXPhenom22Xx

相关问题