Python:查找错误:未知编码:hex

5

我正在使用一个名为Tweepy的Twitter API。它一直运行良好,但是我重新启动了服务器,现在遇到了以下问题:

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

但这并没有起到帮助的作用。

你有什么想法为什么会这样?


你重启后是否丢失了某些环境设置? - Raz
4个回答

2
我遇到了同样的问题(涉及json),解决方法是将缺失的“hex_codec.py”文件复制到您的“encodings”Lib文件夹中:
请确保您已安装Python 2.7.X(稍后会派上用场)。
1.前往Python 2.7.X安装目录下的'encodings'文件夹(例如Win平台:'C:\Python27\Lib\encodings');
2.将“hex_codec.py”或每个“.py”文件复制到您的“build/bdist.linux-i686/egg/encodings”文件夹中;
3.完成。

1
看起来存在 binascii.so,而不是 binascii.py。 - alanjds
这是什么问题的根本原因? - jterrace

1

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

我已经重命名了encodings/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”命令吗?


1

在静态Python版本中遇到了这个问题。通过在“Modules / Setup”中启用binascii解决了它。 - minghua

0

你改变了Python的安装吗?在3.x中,似乎比2.x少了一些编解码器。特别是,hexbase64好像没有了。


不是的。我一直在使用Python 2.6.2。 - Zeno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接