4

我正在使用 macports 安装各种模块。通常这很好用,但下面是我遇到的一个我不容易解决的错误:

$ 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']

$ cat /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dns/ init .py [snipped comments] # 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

提前致谢。

4

3 回答 3

8

因为你需要做:

from dns import resolver

这不起作用:

import datetime.datetime

但这确实:

from datetime import datetime

如果要导入属于另一个包的包,则需要使用“from”语法

于 2011-03-05T21:20:33.723 回答
2

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

于 2011-03-06T02:37:22.527 回答
0

我正在使用 Python 3.7 并安装了 pubdns。这解决了我的问题。我在使用 py3dns、pyDNS(不会安装)、dnspython 等方面遇到了极大的困难

于 2019-07-25T17:15:47.113 回答