2011-10-17 9 views
5

TweepyというTwitter APIを使用しています。Python:LookupError:不明なエンコーディング:16進数

from encodings import hex_codec 

をそして、それは助けにはならなかった。

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

私もこれを試してみました:私は、サーバーを再起動し、今私はこれを取得しています、細かい作業をされています。

なぜでしょうか?

+0

は、あなたが再起動するので、失ってしまった、環境設定のいくつかの並べ替えはありますか? – Raz

+0

私が知っているわけではありません。 – Zeno

答えて

0

あなたのPythonインストールを変更しましたか? 3.xでは、2.xよりコーデックが少ないようです。特に、hexおよびbase64が欠けている、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で)同じ問題を経験してきた、ソリューションがあなたの「エンコード」のLibフォルダに不足している「hex_codec.py」ファイルをコピーすることです:

あなたは、Python 2.7.35をインストールしていることを確認してください(それは後で役に立つと思うでしょう)。

  1. は 'エンコード' フォルダのためのあなたのPython 2.7.35のインストールディレクトリに移動します(例:勝利プラットフォームのために: 'C:\ Python27 \ Libの\エンコーディング')
  2. コピー 'hex_codec.py' またはすべての単一'.py'ファイルをあなたの 'build/bdist.linux-i686/egg/encodings'フォルダにコピーしてください。
+1

binascii.pyの代わりにbinascii.soが存在します。 – alanjds

+0

これの根本的な原因は何ですか? – jterrace

1

...

  • 利益は、私はアンドロイド-python27(https://code.google.com/p/android-python27/issues/detail?id=30)をしようと、同じ問題を抱えて。

    PyPyからbinascii.pyをコピーし、binascii.soを試して修正し、バイナリをインポートできない場合はpure-pythonにフォールバックすることで解決します。

    は、ここに結果を取得します:https://gist.github.com/alanjds/6091309

  • +0

    これは静的なpythonビルドで見ました。 'Modules/Setup'でbinasciiを有効にして解決しました。 – minghua

    関連する問題