2010-10-07 5 views

Répondre

2

Si vous utilisez le protocole par défaut (0) qui est basé sur le texte, les choses devraient fonctionner. Je ne suis pas sûr de ce qui se passera si vous utilisez un protocole plus élevé. Il est très facile de tester ceci ...

+1

Merci pour votre réponse. Il est intéressant que vous souligniez "devrait", parce que maintenant j'utilise en effet le protocole par défaut à la fois dans cPickle CPython et IronPython, et j'obtiens des erreurs "EOF inattendues". Auriez-vous connaissance de toutes les raisons pour lesquelles cela peut se produire? Mes fichiers sont lus et écrits en mode 'rb' et 'wb', respectivement. – JustOnePixel

+2

Bien devrait certainement être les vrais bogues de module. Il existe des tests qui incluent des pickles d'une version ou d'une autre qui fonctionnent à travers les runtimes. J'ai récemment écrit du code qui utilise la sortie pickle de CPython combinée avec unpickler de IronPython et n'a eu aucun problème. La seule différence potentielle est IronPython peut produire des chaînes Unicode où CPython produirait des chaînes ASCII. Mais ceux-ci devraient encore s'accumuler/déconcerter à travers les implémentations. Pouvez-vous réduire le problème à un plus petit échantillon? –

0

Cela fonctionnera car lorsque vous débloquerez des objets pendant load(), il utilisera les définitions actuelles de toutes les classes que vous avez définies maintenant, pas de retour lorsque les objets ont été décapés. IronPython est simplement Python avec la bibliothèque standard implémentée en C# pour que tout émette IL. Les deux modules pickle CPython et IronPython ont la même fonctionnalité, sauf une est implémentée en C et l'autre en C#.

Questions connexes