2012-04-08 15 views
7

Soy nuevo en Python y acabo de instalar PyCharm para Windows. Descargado un código de muestra de Skype para probar su SkypeKit API. Pero ... Tan pronto como me golpeó el botón de depuración, me sale esto: (He 2,7 Python y Django 1.4 instalado)NameError: name 'N_TOKENS' no está definido

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 

¿qué significa esto y qué puedo hacer para solucionarlo?

+0

¿Funciona con PyCharm 2.5 disponible en http://confluence.jetbrains.net/display/PYH/JetBrains+PyCharm+Preview? – CrazyCoder

+0

@CrazyCoder Lo tengo trabajando con la ayuda de Riaz Rizvi, por lo que me apegaré al lanzamiento estable por el momento. – BlueVoodoo

Respuesta

12

El módulo tokenize.py probablemente esté cargando el módulo token.py incorrecto. Ver error importing numpy. Solución 1) renombrar el nuevo token.py (token2.py) y actualizar las referencias a él en tokenize.py, etc. Solución 2) si el nuevo token.py está en un paquete python puede desambiguar el enunciado de importación:

import CorrectPythonPackage.token as token2 

#or 

from CorrectPythonPackage.token import * 

Donde CorrectPythonPackage es el nombre de la carpeta que contiene el archivo token.py.

+0

Gracias. Cambiar el nombre a token2.py y cambiar a "from token2 import *" en tokenize.py funcionó. – BlueVoodoo

6

En mi caso, había creado como un ejercicio de análisis sintáctico un archivo llamado token.py que causaba el conflicto inicial del espacio de nombres. Sin embargo, simplemente cambiar el nombre del archivo en el proyecto Eclipse no siempre soluciona el problema. En ocasiones, se crea un archivo de código de bytes compilado con una terminación * .pyc cuando se ejecuta python. También puede tener que buscar y eliminar eso usando los comandos del sistema de archivos.

0

Vi esto cuando había activado un virtualenv, pero no había cambiado al directorio de venv. El intento de importar tokenize (del zip de los módulos del sistema) estaba fallando.

Al cambiar mi directorio de trabajo a la raíz del entorno virtual se solucionó el problema (presumiblemente un problema de ruta relativa).

2

funcionó para mí.

  1. cambiar el nombre de archivo /usr/lib/python2.7/token.py a /usr/lib/python2.7/token2.py
  2. /usr/lib/python2.7/tokenize.py abierta
  3. cambio from token import * a from token2 import *

hecho.

+0

¡También funciona para mí, gracias! –

Cuestiones relacionadas