11
votes

Résoudre le nettoyage du fil sur Paramiko

J'ai un processus automatisé à l'aide de paramiko et j'ai cette erreur:

Exception in thread Thread-1 (most likely raised during interpreter 
shutdown)

....
....
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 
'error' 


0 commentaires

3 Réponses :


7
votes

__ del __ code> n'est pas un déconstructeur. On l'appelle lorsque vous supprimez le nom de famille d'un objet, qui ne se produit pas de manière significative lorsque vous quittez l'interprète.

Tout ce qui gère un contexte, tel que des connexions, est un Context Manager code> par exemple il y a fermeture Code> : P>

with closing(make_connection()) as conn:
    dostuff()

# conn.close() is called by the `with`


2 commentaires

Et existe un déconstructeur sur Python 2.5 + ??? Ou comment nettoyez les threads, comment savoir? Désolé, mais dans ce cas je suis débutant


@Jochen Ne vous attendons-nous pas à ce que tous les fils de démon soient fermés gracieusement lorsque l'interprète arrête-t-il? Pouvez-vous donner la raison exacte de ce message d'erreur?



1
votes

Fermez vos connexions dans le flux de contrôle de programme normal, pas dans __ del __ , comme @ thc4k dit, ce n'est pas un déconstructeur, et en général, vous ne devez pas besoin utiliser __ del __ (bien sûr il existe des exceptions).

Si vous créez vos propres threads, vous devez avoir besoin de .SetDaemon (true) si vous souhaitez qu'ils quittent normalement lorsque le fil principal se ferme.


0 commentaires

1
votes

I Maintenant, n'est pas le cas. Mais trouver cette discussion, recherchant un problème avec mon application WxPython.

résolvez-la pour ajouter un événement proche au cadre principal. Donc, tout le fil sera proche. xxx

J'espère que cela ne peut aider à personne.


0 commentaires