2011-10-17 12 views
5

Estoy usando una API de Twitter llamada Tweepy. Se ha estado trabajando muy bien, entonces me reinicia el servidor y ahora me estoy haciendo esto:Python: LookupError: codificación desconocida: hex

>>> import tweepy 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "tweepy/__init__.py", line 17, in <module> 
    from tweepy.streaming import Stream, StreamListener 
    File "tweepy/streaming.py", line 16, in <module> 
    json = import_simplejson() 
    File "tweepy/utils.py", line 83, in import_simplejson 
    import simplejson as json 
    File "build/bdist.linux-i686/egg/simplejson/__init__.py", line 111, in <module> 

    File "build/bdist.linux-i686/egg/simplejson/decoder.py", line 29, in <module> 
    File "build/bdist.linux-i686/egg/simplejson/decoder.py", line 21, in _floatconstants 
LookupError: unknown encoding: hex 

He intentado esto también:

from encodings import hex_codec 

Y no ayudó.

¿Alguna idea de por qué?

+0

¿Hay algún tipo de entorno ambiental que ha perdido ya reiniciar? – Raz

+0

No que yo sepa. – Zeno

Respuesta

0

¿Ha cambiado la instalación de Python? En 3.x, parece haber menos códecs que en 2.x. Especialmente, faltan hex y base64, AFAIK.

+0

No. Siempre he estado usando Python 2.6.2 – Zeno

1

He encontrado este problema también, pero sucedió en una computadora a la que no tuve acceso.

He cambiado el nombre codificaciones/hex_codec.py (y eliminado el .pyc) aspecto parecido a lo que hará que ocurra este error

ActivePython 2.7.0.2 (ActiveState Software Inc.) based on 
Python 2.7 (r27:82500, Aug 23 2010, 17:18:21) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import json 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\Python27\lib\json\__init__.py", line 108, in <module> 
    from .decoder import JSONDecoder 
    File "c:\Python27\lib\json\decoder.py", line 24, in <module> 
    NaN, PosInf, NegInf = _floatconstants() 
    File "c:\Python27\lib\json\decoder.py", line 18, in _floatconstants 
    _BYTES = '7FF80000000000007FF0000000000000'.decode('hex') 
LookupError: unknown encoding: hex 
>>> 

un chequeo de archivos, hex_encoding es probable que falte. o puede tener algo extraño en su PATH/PYTHON_HOME

¿Puede hacer printenv antes de ejecutar su código? y "print sys.path" en el intérprete?

2

He estado experimentando el mismo problema (con JSON), la solución es copiar el archivo faltante 'hex_codec.py' en su carpeta Lib '' codificaciones:

Asegúrese de que ha instalado Python 2.7.x (Lo encontrarás útil más adelante).

  1. ir a su directorio de instalación de Python 2.7.x carpeta '' codificaciones (por ejemplo, para la plataforma Win:. 'C: \ python27 \ Lib \ codificaciones')
  2. Copiar 'hex_codec.py' o cada archivo '.py' en la carpeta 'build/bdist.linux-i686/egg/coddings'. ...
  3. GANANCIAS
+1

Parece que existe binascii.so, en lugar de binascii.py – alanjds

+0

¿Alguna idea de cuál es la causa principal de esto? – jterrace

Cuestiones relacionadas