这不是非常重要,因为我可以在spyder
中使它工作,但我非常喜欢pydev
(我很习惯于日食)而且它很烦人,我已经已经花了一些时间在它上面,我想解决它。
我有unittest
(实际上它属于nltk
)而我无法在pydev
中使用它。我尝试过的事情:
spyder
=>中运行它它工作正常pydev
和eclipse
(虽然我上周没有发布过eclipse Mars;我的版本是eclipse 4.5.0.20150603-1639和pydev 4.1.0.2015052700003)nltk
不同的项目中nltk
结构我得到的错误如下:
Traceback (most recent call last):
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydevd.py", line 13, in <module>
from pydevd_breakpoints import * #@UnusedWildImport
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydevd_breakpoints.py", line 15, in <module>
from pydevd_comm import GetGlobalDebugger
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydevd_comm.py", line 79, in <module>
import _pydev_completer
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/_pydev_completer.py", line 21, in <module>
import _pydev_imports_tipper
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/_pydev_imports_tipper.py", line 2, in <module>
import inspect
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/tools/anaconda/lib/python2.7/inspect.py", line 39, in <module>
import tokenize
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/git/nltk/nltk/tokenize/__init__.py", line 62, in <module>
from nltk.data import load
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/git/nltk/nltk/__init__.py", line 115, in <module>
from nltk.decorators import decorator, memoize
File "/Users/lorenzorubio/tools/pydev-mars/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.1.0.201505270003/pysrc/pydev_monkey_qt.py", line 71, in patched_import
return original_import(name, *args, **kwargs)
File "/Users/lorenzorubio/git/nltk/nltk/decorators.py", line 183, in <module>
@decorator
File "/Users/lorenzorubio/git/nltk/nltk/decorators.py", line 161, in decorator
if inspect.isclass(caller):
AttributeError: 'module' object has no attribute 'isclass'
我希望有人可以给我一些关于正在发生的事情的暗示。
测试在this github link。 (为了运行它,你应该在twitter分支中下载nltk
,虽然它应该尽快合并到主分支,但无论如何,我不指望任何人实际运行它,它已经足够了一个人对此感到恼火)。
我正在使用anaconda
来处理python
安装,当然我在PYTHONPATH中添加了我用于nltk
的分支的路径。
非常感谢你的阅读,也许还有你的指示。
编辑:感谢@ That1Guy发表评论!
命名确实存在冲突,而不是inspect
而是tokenize
。 python中有tokenize
与tokenize
中的nltk
冲突。我确实尝试更改.../anaconda/lib/python2.7/inspect.py
而不是
import tokenize
我编辑
from tokenize import tokenize
它有效!
(nltk
tokenize将为import nltk.tokenize
)
但是,修改系统文件根本不干净......有更好的解决方案吗?为什么这只发生在pydev
?
再次感谢。