我是Python新手,刚刚安装了PyCharm for Windows。从Skype下载了一些示例代码,用于测试他们的SkypeKit API。但是......一旦我点击调试按钮,我就明白了:(我安装了Python 2.7和Django 1.4)
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm 2.0.2\helpers\pydev\pydevd.py", line 2, in <module>
from django_debug import DjangoLineBreakpoint
File "C:\Program Files (x86)\JetBrains\PyCharm 2.0.2\helpers\pydev\django_debug.py", line 1, in <module>
import inspect
File "C:\Program Files (x86)\Python27\lib\inspect.py", line 39, in <module>
import tokenize
File "C:\Program Files (x86)\Python27\lib\tokenize.py", line 38, in <module>
COMMENT = N_TOKENS
NameError: name 'N_TOKENS' is not defined
Process finished with exit code 1
这意味着什么,我该怎么做才能解决它?
答案 0 :(得分:13)
tokenize.py模块可能正在加载错误的token.py模块。见error importing numpy。解决方案1)重命名新的token.py(token2.py)并在tokenize.py等中更新对它的引用。解决方案2)如果新的token.py在python包中,你可以消除import语句的歧义:
import CorrectPythonPackage.token as token2
#or
from CorrectPythonPackage.token import *
其中CorrectPythonPackage是包含token.py文件的文件夹名称。
答案 1 :(得分:6)
就我而言,我创建了一个名为token.py的文件作为解析练习,导致初始命名空间冲突。但是,只需在Eclipse项目中重命名文件并不能始终解决问题。有时在运行python时会创建一个带有* .pyc结尾的已编译字节码文件。您可能还必须使用文件系统命令查找和删除它。
答案 2 :(得分:3)
它对我有用。
from token import *
更改为from token2 import *
进行。
答案 3 :(得分:1)
也许您已将程序的模块命名为“令牌”。重命名并更改导入语句,您可以解决问题。如果是开发者的错,请把它们指向我的答案。尝试在sourceforge上修复pylaga时遇到了相同的错误,并通过这种方式解决了。在那种情况下,python的导入路径也被操纵了,这可能迫使python导入了程序的token.py而不是它自己的令牌,并且无法标记事物(实际上,N_TOKENS是在Python自己的token.py中定义的,例如/usr/lib64/python2.7/token.py)。
答案 4 :(得分:0)
当我激活virtualenv时,我看到了这一点,但没有更改为venv目录。尝试导入tokenize(来自系统模块的zip)失败了。
将我的工作目录更改为虚拟环境的根目录解决了问题(可能是相对路径问题)。