Solucionando error de N_TOKENS en Python

python-logo

Si estás en algún proyecto usando Python y estás usando tokens o el módulo token o tokenize seguramente tuviste el siguiente error:

NameError: name 'N_TOKENS' is not defined

Como ya saben, tengo varios bots funcionando en mi RaspberryPi y el día de ayer al actualizar la librería telebot que es la que usan mis bots empecé a tener ese error dejando inutilizados a mis bots haciendo sonar mi alarma interna al instante.

Buscando y rebuscando por la web llegué al grandioso sitio StackOverflow en el cual dan algunas indicaciones para poder resolver ésto que, para mí, es algo temporal ya que se trata de un error en la configuración de Python (y yo pensando que tenía que pasar todos mis bots a Python3).

Aclaración: Yo hice ésto en mi RaspberryPi con Raspbian pero ustedes lo pueden hacer en cualquier distro Linux ya que el problema es propio de Python.

Básicamente tenemos que hacer una serie de pasos que les describo a continuación:

  • Loguearnos como root y acceder al directorio de python:

$ sudo su # cd /usr/lib/python2.7 (En mi caso esa es la versión de Python que uso, ustedes pueden tener una diferente)

  • Una vez dentro del directorio vamos a editar el archivo tokenize.py

# vim **(o el editor que usen)** tokenize.py

  • Buscamos la línea ” from token import * “ y la modificamos por  **” from token2 import * “. ** Está mas o menos por la linea 30.

tokenize

  • Guardamos, salimos del editor y modificamos el nombre del archivo token.py a token2.py. Hacemos un backup antes, por las dudas.

# cp token.py     token.py.bkp # mv token.py   token2.py

  • Ejecutamos el proceso que nos daba el error y chequeamos si todo está bien. Si necesitamos otra librería o módulo, eso corre por cuenta de cada uno, en mi caso haciendo solo ésto el error se solucionó y pude volver a ejecutar los bots sin problemas.

Dejo registrado ésto porque vi que éste error no está comentado en español pero al parecer es algo que está pasando seguido en Python. Si saben de algún amigo que se está rompiendo la cabeza para poder salir de éste error, ya saben, NeoSiteLinux al rescate.

Escrito el February 17, 2017