2011-10-17 145 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