当我尝试导入numpy时,我有一个奇怪的错误:
Traceback (most recent call last):
File "/home/timo/malltul/mafet/src/mafet/core/pattern.py", line 7, in <module>
import numpy as np
File "/usr/lib/python2.6/dist-packages/numpy/__init__.py", line 147, in <module>
import ma
File "/usr/lib/python2.6/dist-packages/numpy/ma/__init__.py", line 44, in <module>
import core
File "/usr/lib/python2.6/dist-packages/numpy/ma/core.py", line 4850, in <module>
all = _frommethod('all')
File "/usr/lib/python2.6/dist-packages/numpy/ma/core.py", line 4824, in __init__
self.__doc__ = self.getdoc()
File "/usr/lib/python2.6/dist-packages/numpy/ma/core.py", line 4830, in getdoc
signature = self.__name__ + get_object_signature(meth)
File "/usr/lib/python2.6/dist-packages/numpy/ma/core.py", line 109, in get_object_signature
import inspect
File "/usr/lib/python2.6/inspect.py", line 39, in <module>
import tokenize
File "/usr/lib/python2.6/tokenize.py", line 38, in <module>
COMMENT = N_TOKENS
NameError: name 'N_TOKENS' is not defined
问题的原因似乎是我的脚本在我自己的名为core
的包中,每当我尝试导入numpy
时,我都会收到错误。导入在其他地方工作正常。
我迄今为止唯一的解决方案是将我的“核心”软件包重命名为其他软件包。为什么这很重要?我做错了吗?
我在Ubuntu 10.14上使用Python2.6。 Numpy版本是1.3.0。
编辑:实际上重命名我的包不能修复它。在我的包中重命名token.py会修复它。抱歉错误。
答案 0 :(得分:4)
我怀疑这与您的core
模块或numpy
有什么关系。
从堆栈跟踪中,问题出现在tokenize
模块上,该模块是Python的一部分,而不是numpy
的一部分。 Tokenize
执行from token import *
,然后使用N_TOKENS
中定义的token.py
。
首先,我会检查token
上没有名为PYTHONPATH
的迷路模块:
>>> import token
>>> token.__file__
'/usr/lib/python2.6/token.pyc'
如果这个拿到上面的文件但你仍然遇到问题,我建议重新安装Python。