2011-03-05 201 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提出了這個建議。謝謝。