Python, comment gérer les “ValueError: non pris en charge pickle protocole: 4” erreur?
Je suis nouveau sur Python.
J'ai pour exécuter cette TargetFinder script ("Analyses Personnalisées").
J'ai installé tous les paquets python, et copié le code dans un script que j'ai nommé main.py
, et il a couru.
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 ce cornichon protocole de moyens, et aussi à mes collègues ne savent rien à ce sujet.
Comment puis-je résoudre ce problème?
Je suis à l'aide de Python 2.7.5 sur un CentOS Linux 7.2.1511 (de Base) système d'exploitation
Comment était le
Je ne sais pas: le TargetFinder développeurs de scripts fournis à tous les fichiers
Dans ce cas, vous avez besoin de python 3.4 ou plus tard.
training.h5
fichier produit?Je ne sais pas: le TargetFinder développeurs de scripts fournis à tous les fichiers
Dans ce cas, vous avez besoin de python 3.4 ou plus tard.
OriginalL'auteur DavideChicco.it | 2016-07-19
Vous devez vous connecter pour publier un commentaire.
Le Cornichon protocole est essentiellement le format de fichier. À partir de la la documentation,
Plus le protocole utilisé, la plus récente de la version de Python nécessaires à la lecture de la saumure produite. ... Pickle protocol version 4 a été ajouté en Python 3.4, votre version de python (2.7.5) ne prend pas en charge cette.
Soit mettre à jour pour Python 3.4 ou plus tard (actuel est de 3,5) ou de créer de la saumure à l'aide d'un bas de protocole (2) dans le troisième paramètre à
pickle.dump()
.OriginalL'auteur cdarke