IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

RunTimeError avec pickle.dump


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut RunTimeError avec pickle.dump
    Salut,

    Soit le bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mutex=Lock()
    mutex.acquire()
    self.forwardTab[name]=[adresse,cost]
    fo = open('file', "wb")
    pickle.dump(self.forwardTab,fo)
    mutex.release()
    Quand j'exécute mon fichier, j'ai les erreurs suivantes qui apparaissent :

    Exception in thread Thread-2:
    Traceback (most recent call last):
    File "C:\Python27\lib\threading.py", line 530, in __bootstrap_inner
    self.run()
    File "C:\Users\Laurent\Desktop\questionExamenProbabilites\Router\src\ConnectionServer.py", line 25, in run
    self.fw.add(str(self.adresses[2]+self.adresses[3]),(self.adresses[0],self.adresses[1]),self.adresses[4])
    File "C:\Users\Laurent\Desktop\questionExamenProbabilites\Router\src\tableForwarding.py", line 21, in add
    pickle.dump(self.forwardTab,fo)
    File "C:\Python27\lib\pickle.py", line 1370, in dump
    Pickler(file, protocol).dump(obj)
    File "C:\Python27\lib\pickle.py", line 224, in dump
    self.save(obj)
    File "C:\Python27\lib\pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
    File "C:\Python27\lib\pickle.py", line 649, in save_dict
    self._batch_setitems(obj.iteritems())
    File "C:\Python27\lib\pickle.py", line 661, in _batch_setitems
    for k, v in items:
    RuntimeError: dictionary changed size during iteration

  2. #2
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Le bout de code donné est un peu court, mais je dirais que ton problème vient du Lock –*si tu en crées un dans chaque thread, peu importe que tu le verrouilles, puisque de toute façon seul ton thread est au courant de son existence…

    Essaye plutôt quelque chose comme ça*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # À la création de ta classe (prop. dans __init__() )
    self.mutex=Lock()
     
    # Ensuite…
    self.mutex.acquire()
    self.forwardTab[name]=[adresse,cost]
    fo = open('file', "wb")
    pickle.dump(self.forwardTab,fo)
    self.mutex.release()
    L’important étant que tu sois sûr que tous tes threads utilisent (verrouillent) bien le même verrou*!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    merci, ça fonctionne

Discussions similaires

  1. [pickle] .dump : souci de base sur l'utilisation de la fonction
    Par mianreg dans le forum Général Python
    Réponses: 4
    Dernier message: 15/10/2009, 18h40
  2. Deserialization avec pickle
    Par skokaina dans le forum Général Python
    Réponses: 7
    Dernier message: 05/10/2008, 19h58
  3. quelques soucies avec cerealizer ? Dump() s'avere delicat.
    Par jubaPython dans le forum Général Python
    Réponses: 8
    Dernier message: 12/05/2008, 22h52
  4. RuntimeError avec Tkinter
    Par kromartien dans le forum Tkinter
    Réponses: 1
    Dernier message: 26/04/2008, 13h06
  5. Fichier .sql, problème avec Xt-Dump
    Par francoispl dans le forum Administration
    Réponses: 3
    Dernier message: 16/04/2008, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo