10 votes

Erreur de sous-processus Python IDLE ?

Le sous-processus de IDLE n'a pas fait connexion. Soit IDLE ne peut pas démarrer un sous-processus, soit un pare-feu personnel personnel bloque la connexion.

Je ne pense pas que cette question ait déjà été posée. Comment se fait-il que ce problème apparaisse parfois lors de l'exécution de programmes très simples ? Je dois alors aller dans le gestionnaire des tâches et arrêter tous les processus Pythonw pour qu'il fonctionne à nouveau ?

Cela semble se produire de manière aléatoire sur différents bouts de code - voici celui que je fais en ce moment-.

f = open('money.txt')
currentmoney = float(f.readline())
print(currentmoney, end='')
howmuch = (float(input('How much did you put in or take out?:')))
now = currentmoney + howmuch
print(now)
f.close()
f = open('money.txt', 'w')
f.write(str(now))
f.close()

Parfois ça marche, parfois non !

5voto

Thomas Harker Points 41

Je recevais le même message d'erreur. Ce qui causait le problème pour moi était que j'avais nommé un de mes scripts 'string.py'. Chaque fois que j'essayais d'exécuter un scripts avec 'string.py' dans le même répertoire, cela se produisait.

3voto

Alex Martelli Points 330805

Vous pouvez utiliser idle -n pour éviter de tels problèmes (tout en ayant d'autres limitations).

2voto

Willum Points 21

J'avais ce même problème dans la version 2.7.3. J'ai découvert que lorsque j'apprenais à utiliser tkinter et que je créais un programme de base pour ouvrir une fenêtre, je le nommais Tkinter.py et le plaçais dans le même dossier que le programme que j'essayais d'exécuter avec IDLE. Il compilait toujours le programme appelé Tkinter et créait un second fichier compilé. Lorsque j'essayais d'exécuter mon autre programme, j'obtenais le message d'erreur. J'ai renommé mon simple programme d'ouverture de Windows en quelque chose d'autre et j'ai supprimé le fichier compilé. J'ai pu exécuter tous les programmes de ce dossier avec IDLE sans problème.

1voto

wr. Points 1887

Pouvez-vous être plus précis en fournissant un court échantillon de code ?

IDLE a quelques problèmes de threading. La première chose à faire pour déboguer votre problème serait donc d'imprimer des données simples dans votre sous-processus. Vous verrez ainsi s'il s'agit d'un problème lié au réseau ou au threading.

1voto

Anon Points 3418

Dans Python 3.0.1, j'ai obtenu cette erreur après avoir fait Ctrl-C pour interrompre une exécution précédente d'un programme dans le Python Shell d'Idle et ensuite essayer d'exécuter un script.

Également dans la version 3.0.1 : Disons que vous avez deux fenêtres Idle ouvertes : un script ouvert pour l'édition dans l'une, et la fenêtre Python Shell d'Idle. J'ai constaté que si vous fermez la fenêtre du shell et essayez immédiatement d'exécuter le script, il donnera cette erreur lorsqu'il essaiera de rouvrir le shell - mais pas si vous attendez un peu entre les deux pour laisser Idle faire le nettoyage de connexion dont il a besoin.

Les pires bogues que j'ai trouvés (encore une fois, dans la v3.0.1- je ne suis pas sûr que cela se produise dans les versions 2.x) : J'avais un long script - approchant les 9k lignes - et une fois qu'il atteignait une certaine taille, faire "save as" dessus faisait planter Idle. Je ne suis pas sûr du seuil exact pour la taille - mais avant cela, j'avais aussi des plantages intermittents de "save as" qui semblaient dépendre de ce que j'avais d'autre en cours - d'autres fenêtres Idle, la quantité de sortie dans la fenêtre shell peut-être - des choses comme ça. Il peut se planter et vous perdrez le travail non sauvegardé.

Aussi - une chose que je fais couramment est d'avoir une fenêtre scratch ouverte où je coupe et colle des bouts de code à différents stades de validité, je m'écris des notes, etc - donc pas un script python valide, mais je les sauvegarde parfois pour pouvoir y revenir. J'ai un tel fichier qui fait planter Idle chaque fois que j'essaie de l'ouvrir - et j'ai perdu le travail non sauvegardé la première fois. (FYI : D'autres éditeurs, y compris PythonWin 2.5.2, n'ont aucun problème pour ouvrir le fichier).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X