Je suis nouveau sur Python. Je dois exécuter ceci script TargetFinder ("Analyses personnalisées") .
J'ai installé tous les packages python et j'ai copié le code dans un script que j'ai nommé main.py
, et je l'ai exécuté. J'ai eu cette erreur:
[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
Je n'ai aucune idée de ce que signifie ce protocole de cornichons, et mes collègues ne savent rien à ce sujet.
Comment puis-je résoudre ce problème?
J'utilise Python 2.7.5 sur un système d'exploitation CentOS Linux version 7.2.1511 (Core)
Le protocole Pickle est essentiellement le format de fichier. D'après la documentation , Plus le protocole utilisé est élevé, plus la version de Python nécessaire pour lire le cornichon produit est récente. ... La version 4 du protocole Pickle a été ajoutée dans Python 3.4 , votre = python (2.7.5) ne prend pas cela en charge.
Soit mettre à niveau vers Python 3.4 ou version ultérieure (le courant est 3.5) ou créer le cornichon en utilisant un protocole inférieur (2) dans le troisième paramètre à pickle.dump()
.