8

Вопрос по python-2.7, python – NameError: имя 'N_TOKENS' не определено

Я новичок в Python и только что нашел время для установки PyCharm для 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

Что это значит и что я могу сделать, чтобы это исправить?

  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от BlueVoodoo
  • @CrazyCoder Работал с помощью Riaz Rizvi, так что сейчас придерживаемся стабильной версии.

    от BlueVoodoo
  • Работает ли он с PyCharm 2.5, доступным наconfluence.jetbrains.net/display/PYH/JetBrains+PyCharm+Preview?

    от CrazyCoder
5 ответов
  • 6

    В моем случае я создал в качестве упражнения для разбора файл с именем

    token.py, который вызвал первоначальный конфликт пространства имен. Однако простое переименование файла в проекте Eclipse не всегда решает проблему. Иногда при запуске python создается скомпилированный файл байт-кода с окончанием * .pyc. Вам также может понадобиться найти и удалить это с помощью команд файловой системы.

  • 3

    это сработало для меня.

    rename file /usr/lib/python2.7/token.py to /usr/lib/python2.7/token2.py open /usr/lib/python2.7/tokenize.py change from token import * to from token2 import *

    сделанный.

  • 0

    Я увидел это

    когда активировал virtualenv, но не перешел в каталог venv. Попытка импортировать токен (из архива системных модулей) не удалась.

    Изменение моего рабочего каталога в корень виртуальной среды решило проблему (предположительно, проблему относительного пути).

  • 13

    Модуль tokenize.py

    вероятно, загружает неправильный модуль token.py. УвидетьОшибка импорта 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

    Возможно

    вы назвали модуль своей программы "токеном". Переименуйте это и измените свои операторы импорта, и вы можете исправить свою проблему. Если это ошибка разработчика, укажите, пожалуйста, на мой ответ. У меня была та же ошибка при попытке исправить Pylaga на sourceforge, и решил ее таким образом. В этом случае также обрабатывался путь импорта python, что могло вынудить python импортировать программный token.py вместо своего собственного и не смог токенизировать вещи (фактически, N_TOKENS определен в собственном токене Python. py, например /usr/lib64/python2.7/token.py).