問題描述
我是 Python 新手.我必須運行這個 TargetFinder 腳本(自定義分析").
I'm new to Python. I've to run this TargetFinder script ("Custom Analyses").
我安裝了所有必需的 python 包,并將代碼復制到我命名為 main.py
的腳本中,然后運行它.我收到了這個錯誤:
I installed all the required python packages, and copied the code into a script I named main.py
, and ran it.
I got this error:
[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 協議是什么意思,我的同事也對此一無所知.
I've no idea about what this pickle protocol means, and also my colleagues know nothing about it.
我該如何解決這個問題?
我在 CentOS Linux 版本 7.2.1511(核心)操作系統上使用 Python 2.7.5
I'm using Python 2.7.5 on a CentOS Linux release 7.2.1511 (Core) operating system
推薦答案
Pickle 協議基本上就是文件格式.從 文檔,使用的協議越高,讀取生成的 pickle 所需的 Python 版本越新. ... Pickle 協議版本 4 是在 Python 3.4 中添加的,您的 Python 版本(2.7.5) 不支持這個.
The Pickle protocol is basically the file format. From the documentation, The higher the protocol used, the more recent the version of Python needed to read the pickle produced. ... Pickle protocol version 4 was added in Python 3.4, your python version (2.7.5) does not support this.
要么升級到 Python 3.4 或更高版本(當前為 3.5),要么在 pickle.dump()
的第三個參數中使用較低的協議 (2) 創建 pickle.
Either upgrade to Python 3.4 or later (current is 3.5) or create the pickle using a lower protocol (2) in the third parameter to pickle.dump()
.
這篇關于Python,如何處理“ValueError:不支持的pickle協議:4";錯誤?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!