我是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我不知道这个泡菜协议意味着什么,我的同事们对此也一无所知。
如何解决这个问题?
我在CentOS Linux7.2.1511(核心)操作系统上使用Python2.7.5
发布于 2016-07-19 19:23:28
Pickle协议基本上是文件格式。从文档中,使用的协议越高,需要读取所产生的泡菜的最新版本就越多。..。泡菜协议版本4是在Python3.4中添加的,您的Python版本(2.7.5)不支持这一点。
要么升级到Python3.4或更高版本(当前为3.5),要么在pickle.dump()的第三个参数中使用更低的协议(2)创建泡菜。
发布于 2020-12-24 23:21:35
这有时是由于redis数据库中的数据不正确造成的。试一试:
sudo redis-cli flushall发布于 2021-05-11 07:38:15
这是python版本问题,将其升级到最新的python版本并尝试。
https://stackoverflow.com/questions/38466523
复制相似问题