2016-07-19 5 views
8

私はPythonが初めてです。 これを実行しましたTargetFinder script ("Custom Analyses")Python、 "ValueError:サポートされていないpickleプロトコル:4"エラーの処理方法?

必要なPythonパッケージをすべてインストールし、そのコードをmain.pyというスクリプトにコピーして実行しました。 私は、このエラーました:

[[email protected]]$ python main.py 
Traceback (most recent call last): 
    File "main.py", line 8, in <module> 
    training_df = pd.read_hdf('./paper/targetfinder/K562/output-epw/training.h5', 'training').set_index(['enhancer_name', 'promoter_name']) 
    File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 330, in read_hdf 
    return store.select(key, auto_close=auto_close, **kwargs) 
    File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 680, in select 
    return it.get_result() 
    File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 1364, in get_result 
    results = self.func(self.start, self.stop, where) 
    File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 673, in func 
    columns=columns, **kwargs) 
    File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 2786, in read 
    values = self.read_array('block%d_values' % i) 
    File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 2327, in read_array 
    data = node[:] 
    File "/usr/lib64/python2.7/site-packages/tables/vlarray.py", line 677, in __getitem__ 
    return self.read(start, stop, step) 
    File "/usr/lib64/python2.7/site-packages/tables/vlarray.py", line 817, in read 
    outlistarr = [atom.fromarray(arr) for arr in listarr] 
    File "/usr/lib64/python2.7/site-packages/tables/atom.py", line 1211, in fromarray 
    return cPickle.loads(array.tostring()) 
ValueError: unsupported pickle protocol: 4 

私はこのピクルスプロトコルが何を意味するかについては考えてきたんし、また私の同僚はそれについて何も知りません。

どうすればこの問題を解決できますか?

私はピクルスプロトコルは、基本的なファイル形式ですCentOSのLinuxのリリース1511年7月2日(コア)オペレーティングシステム

+0

'training.h5'ファイルはどのように生成されましたか? –

+0

私は分かりません:TargetFinderスクリプト開発者がすべてのファイルの中に提供しました –

+0

その場合は、Python 3.4以降が必要です。 – cdarke

答えて

10

でPython 2.7.5を使用しています。 documentationより 使用するプロトコルが高ければ高いほど、生成されたピックルを読むために必要なPythonのバージョンがより最近になります。 ... Pickleプロトコルバージョン4がPython 3.4で追加されました。あなたのpythonバージョン(2.7.5)はこれをサポートしていません。

Python 3.4以降(現在は3.5)にアップグレードするか、第3パラメータの下位プロトコル(2)を使用してピックルをpickle.dump()に作成してください。

関連する問題