2011-03-05 295 views
4

我正在使用macports来安装各种模块。一般来说,这是行之有效的,但下面是我得到的,我不容易解决的错误:python模块导入错误

$ python 
Python 2.6.6 (r266:84292, Feb 12 2011, 16:57:53) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import dns 
>>> import opcode 
>>> from dns import resolver 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns/resolver.py", line 26, in <module> 
    import dns.message 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns/message.py", line 28, in <module> 
    import dns.opcode 
ImportError: No module named opcode 

这可能是一个路径问题?

>>> import sys 
>>> sys.path 
['', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info'] 

$猫/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns/ 初始化的.py [剪断评论] # init .py用于DNS类。

__version__ = '2.3.3' 

import Type,Opcode,Status,Class 
from Base import DnsRequest, DNSError 
from Lib import DnsResult 
from Base import * 
from Lib import * 
Error=DNSError 
from lazy import * 
Request = DnsRequest 
Result = DnsResult 

在此先感谢。

+0

'从dns导入解析器'不起作用?你可以在'/ opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns /'里面发布'__init __。py'的内容吗? – 2011-03-05 20:23:23

回答

6

因为你需要做的:

from dns import resolver 

这不起作用:

import datetime.datetime 

但这:

from datetime import datetime 

如果要导入一个包,是你需要使用“from”语法

+0

我得到了同样的错误。我编辑了这篇文章以反映这一点。 – galaxywatcher 2011-03-05 21:28:38

+0

你试过导入dns,resolver = dns.resolver?你已经有了导入的dns包。 – tkone 2011-03-05 22:33:11

+0

我现在已经尝试过了,但我仍然得到一个错误:AttributeError:'module'object has no attribute'resolver' – galaxywatcher 2011-03-05 23:40:48

2

我卸载了py26-dnspython并重新安装。问题解决了。 Freen的fink提出了这个建议。谢谢。