2011-10-17 98 views
5

我正在使用名为Tweepy的Twitter API。它一直在努力罚款,然后我重新启动服务器,现在我得到这样的:Python:LookupError:未知编码:十六进制

>>> 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 

我想这太:

from encodings import hex_codec 

,并没有帮助。

任何想法为什么?

+0

是否有某种环境设置,因为重新启动你失去了什么? – Raz

+0

不是我所知道的。 – Zeno

回答

0

你有没有改变你的Python安装?在3.x中,编解码器似乎比在2.x中少。特别是,hexbase64缺失,AFAIK。

+0

没有。我一直在使用Python 2.6.2 – Zeno

1

我也遇到过这个问题,但它发生在我无法访问的计算机上。

我已经改名为编码/ hex_codec.py(并删除了.pyc文件) 样子会做出什么这个错误发生

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 
>>> 

检查文件,hex_encoding可能缺失。 或者你可能在PATH/PYTHON_HOME里有些奇怪的东西

你可以在运行你的代码之前做printenv吗?和解释器中的“print sys.path”?

2

我已经遇到了同样的问题(使用JSON),解决的办法是在你的“编码”库文件夹复制缺少“hex_codec.py”文件:

确保您已经安装了Python 2.7.X (你会发现它稍后有用)。

  1. 转到你的Python 2.7.X安装目录 '编码' 文件夹(如适用于Win平台: 'C:\ Python27 \ LIB \编码')
  2. 复制 'hex_codec.py' 或每一个'.py'文件复制到'build/bdist.linux-i686/egg/encodings'文件夹中。 ...
  3. 利润
+1

看起来像binascii.so存在,而不是binascii.py – alanjds

+0

任何想法这是什么根源? – jterrace