8

我是 Python 新手,刚开始为 Windows 安装 PyCharm。从 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

这是什么意思,我能做些什么来解决它?

4

5 回答 5

13

tokenize.py 模块可能加载了错误的 token.py 模块。请参阅导入 numpy 时出错。解决方案 1) 重命名新的 token.py (token2.py) 并在 tokenize.py 等中更新对它的引用。解决方案 2) 如果新的 token.py 在 python 包中,您可以消除导入语句的歧义:

import CorrectPythonPackage.token as token2

#or 

from CorrectPythonPackage.token import *

其中 CorrectPythonPackage 是包含 token.py 文件的文件夹名称。

于 2012-04-09T08:22:58.013 回答
6

在我的例子中,我创建了一个名为 token.py 的文件作为解析练习,它导致了初始命名空间冲突。但是,简单地重命名 Eclipse 项目中的文件并不总是能解决问题。有时在运行 python 时会创建一个带有 *.pyc 结尾的编译字节码文件。您可能还必须使用文件系统命令查找并删除它。

于 2013-06-05T18:28:21.353 回答
3

它对我有用。

  1. 将文件 /usr/lib/python2.7/token.py 重命名为 /usr/lib/python2.7/token2.py
  2. 打开 /usr/lib/python2.7/tokenize.py
  3. 更改from token import *from token2 import *

完毕。

于 2017-08-07T21:02:26.200 回答
1

也许您已将程序的一个模块命名为“令牌”。重命名它并更改您的导入语句,您可能会解决您的问题。如果是开发人员的错,请指出我的答案。我在尝试在 sourceforge 上修复 pylaga 时遇到了同样的错误,并以这种方式解决了它。在那种情况下,python 的导入路径也被操纵了,这可能迫使 python 导入程序的 token.py 而不是自己的,并且无法对事物进行标记(实际上,N_TOKENS 是在 Python 自己的 token.py 中定义的,例如/usr/lib64/python2.7/token.py)。

于 2018-08-08T04:52:34.550 回答
0

我在激活 virtualenv 时看到了这一点,但没有更改为 venv 目录。尝试导入 tokenize(从系统模块的 zip 文件)失败。

将我的工作目录更改为虚拟环境的根目录解决了这个问题(可能是相对路径问题)。

于 2014-06-18T06:22:22.493 回答