私はPythonが初めてです。これを実行する必要があります TargetFinderスクリプト( "カスタム分析") 。
必要なすべてのpythonパッケージをインストールし、main.py
という名前のスクリプトにコードをコピーして実行しました。このエラーが発生しました。
[davide@laptop]$ 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
このpickleプロトコルが何を意味するのか私にはわかりませんし、同僚もそれについて何も知りません。
この問題を解決するにはどうすればよいですか?
CentOS Linuxリリース7.2.1511(コア)オペレーティングシステムでPython 2.7.5を使用しています
Pickleプロトコルは基本的にファイル形式です。 ドキュメント 、から、使用するプロトコルが高ければ高いほど、Python生成されたピクルスを読み取るために必要なバージョンが新しい。...Pickleプロトコルバージョン4がPython 3.4、your = python version(2.7.5)はこれをサポートしていません。
Python 3.4以降(現在は3.5))にアップグレードするか、pickle.dump()
の3番目のパラメーターで下位プロトコル(2)を使用してpickleを作成します。