Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

problème de console python

+6 votes

Lorsque je veux exécuter un script avec python, la console s'ouvre et se referme immédiatement. Du coup ça me fait plus ou moins la même chose lorsque j'essaie avec la console NPPexe de notepad++. Au passage je ne peux pas désinstaller python du tout, ça me donne un code erreur 2753.

demandé 7-Fev-2015 par Gauthier (128 points)

Donne nous ton OS, ta version de Python, le code, tes lunettes et ta moto.

Je suis sur windows 7, J'ai la version 3.4 de python, quel code ?, -O-O- , les clefs sont dans le tiroir de gauche.

Qu'apelles-tu par exécuter un script? le fais-tu via le bout run de ton IDE? peut-être qu'il s'exécute quelques part que tu ne vois pas où :D? Peut-être qu'il n'affiche rien ton script lol.
Je pense que Sam t'a demandé ton code car tu parles de script python, donc logiquement ça ne peut être que du code.
Donc envoi ton code =D

Je parie sur une installation foireuse.

On ne s'attend pas à des miracles sous windowb (Mais ce n'est pas but de la question
-_-)

n'importe quel code en fait. Même print("hello") ne fonctionne pas.

Quand je parle de l'exécution du script je parle de F5 (ou F6 pour la console intégrée à Notepad++)

Je ne pense pas qu'il s'exécute ailleurs parce que la console se lance mais se referme tout de suite.

Je pense aussi que c'est un problème d'installation mais justement, comment le résoudre :/

Pour l'erreur 2753, ouvre une question séparée. Ne mélangeons pas les réponses.

4 Réponses

–4 votes

Si t'es courageux et que tu veux dév sérieusement, tout en gardant ton widowb, je te conseille d'installer un environement virtuel linux, comme ça t'auras accès à tout ce que tu peux faire sous linux (ou presque?) tout en gardant ton windowb.
Je te conseille pour ce faire virtualbox , voici un petit tuto pour configurer tout ça.
Une fois le logiciel installé/configuré, tu peux installer le linux que tu vois ensuite (perso je te conseille ubuntu =D).
Désolé de ne pas avoir répondu directement à ta question, c'est juste que si t'as linux les devs seront plus enclins à te répondre car c'est un OS qu'ils connaissent beaucoup mieux, de toute façon je doute que tu aies beaucoup de mal à utiliser python en mode script/intéractifs une fois sur linux, ou du moins l'erreur 2753 sera peu probable :D.
Si t'as du mal n'hésite pas.

répondu 7-Fev-2015 par boblinux (3,092 points)

Merci pour ta réponse détaillée ! Ouais j'y avais pensé je sais faire une machine virtuelle et j'avais pensé à cette solution mais du coup je cherchais plus simple. Mais je pense effectivement que c'est la meilleure solution. Est-ce que tu aurais une solution pour pouvoir supprimer complètement python de windows du coup ? Parce que même quand je supprime tous les fichiers il reste dans les programme à supprimer.

En tout cas merci beaucoup pour ta réponse :)

La solution a mon avis serait de le réinstaller pour arriver à mieux le désinstaller

Et personnellement je ne suis pas trop d'accord... Python a l'immense avantage d'être utilisable sur tous les systèmes d'exploitation, il n'y a aucune raison d'utiliser une machine virtuelle pour développer dans le cas présent.

Nous travaillons professionnellement avec Python sous WIndows et cela fonctionne très bien. Dans tous les cas nous ne répondons pas à la question de Gauthier.

Merci pour vos réponses ! :D

Foxmask : malheureusement j'ai déjà essayé et ça n'a pas fonctionné :/

Debnet : auriez-vous une solution à me proposer ? :)

En plus d'être à la limite du troll, c'est un peu comme utiliser un bazooka pour tuer une mouche. Certes, travailler sous Windows est beaucoup moins confortable que sous Linux, mais ça ne répond pas vraiment à la question de la manière la plus directe. Imagine que d'autres personnes cherchent une solution à ce problème et tombe sur cette réponse: pas très utile.

Je suis d'accord avec vos com's, mais au moins on aura plus d'alternatives possibles, après chacun fait en fonction de ce qui lui convient, certes il est toujours préférable de régler le problème directement, mais parfois quelques détours ne font pas de mal =D.

+8 votes

Je me trompe peut-être, mais ce que tu décris semble être le comportement normal et attendu sous windows. Notepad++ lance python.exe avec le script de la fenêtre courante de notepad++, l'interpreteur python.exe se lance donc, execute de manière très rapide ton code et ferme l'interpreteur puisqu'il n'y a plus rien d'autre à faire, sans que tu es le temps de pouvoir lire quoi que ce soit. C'est la même chose sous linux si python n'est pas lancé à partir d'un terminal qui lui pour le coup ne va pas se fermer à la fin du programme.

Il y a plusieurs solutions, la 1ere rapide mais plutôt sale, puisqu'il suffit d'ajouter du code bloquant à la fin de ton programme comme par exemple:

Avec python2:

raw_input()

Avec python3:

input()

Pour fermer le programme il suffit d'appuyer sur la touche entrer. Malheureusement si il y a une erreur dans ton code le programme se fermera sans que tu puisses la lire aussi...

La meilleure solution sous windows est d'utiliser un IDE qui va afficher la sortie de ton programme dans une fenêtre qui ne se fermera pas à la fin de celui-ci. Notepad++ le fait peut être après l'avoir configuré pour cela. Il me semble que IDLE est fourni de base avec python sous windows, c'est un IDE très simple mais qui te suffira peut-être pour débuter. Ensuite il te faudra passer à des IDE plus sérieux.

répondu 7-Fev-2015 par digit (152 points)

Merci pour ta réponse ! :)

J'ai essayé avec la commande input() à la fin mais ça n'a pas fonctionné que ce soit avec le F5 ou le F6 de notepad++.

Pour ce qui est d'IDLE, il ne fonctionne pas. Quelque soit l'endroit d'où je le lance il ne se lance jamais. Cependant, j'ai fait une machine virtuelle pour essayer avec Ubuntu et là ça marchait comme sur des roulettes.

ça refonctionne pas, j'y comprends rien :D

Miracle ! ça marche avec le input() à la fin maintenant alors que ça ne marchait pas il y a deux minutes mais je ne vais pas m'en plaindre ! IDLE ne marche toujours pas et je ne peux toujours pas supprimer python, mais je peux l'utiliser et c'est tout ce qui compte :) Merci beaucoup en tout cas ! :)

Ouvre la console et lance le script depuis ta console comme expliqué depuis ma réponse. Cela te permettra de lire les messages d'erreur en cas de plantage, ce que input() ne permet pas.

Il semblerait qu'il faille que je l'enregistre avant de l'exécuter :)

ça marche même sans input() maintenant il fallait juste que je l'enregistre avant de l'exécuter sans quoi le chemin que je lui donnais était vide.

+7 votes

C'est le comportement attendu d'un script. Si tu veux que la console reste ouverte, ouvre la manuellement, puis lance la commande "python tonscript.py" ou "py tonscript.py" si tu as la chance d'utiliser python 3.

Note que :

  • tu dois ouvrir la console dans le même dossier que ton script. Tu peux obtenir une console directement dans le dossier courant en faisant SHIFT + click droit et "ouvrir une console ici".
  • python doit être dans ton PATH

Comme le dit digit, tu peux insérer input() à la fin de ton script si tu veux artificiellement empêcher une fenêtre de se fermer, qui alors se fermera en appuyant sur entrée.

répondu 7-Fev-2015 par Sam (4,984 points)

Merci pour ta réponse :)

J'ai bien fait la commande pour le path et quand je lance et qu'il demande le chemin je tape directement " C:\Python34\python.exe "$(FULLCURRENTPATH)" "

ça a marché pendant deux minutes avec input() à la fin mais ça ne refonctionne plus :/

Il semblerait qu'il faille que je l'enregistre avant de l'exécuter :)

Alors, tu mélanges plein de choses :

  • oui, il faut toujours sauvegarder son fichier avant de l'exécuter.
  • je ne sais pas ce qu'est "$(FULLCURRENTPATH)", je suppose que c'est une question d'éditeur, mais ce n'est pas ce que je propose
  • tu n'as pas ouvert la console en premier.

Ce que je te dis, c'est de ne PAS lancer le script python depuis ton éditeur ou en cliquant dessus. Tu ouvres une console système avant de lancer ton script, et tu lances ton script depuis là. C'est la manière standard de faire. Ca marche toujours, partout, tout le temps, et te montre toutes les erreurs.

Tu vas dans ton explorateur de fichier, tu fais shift + click droit sur le dossier qui contient ton script, tu clique sur "ouvrir une console dans ce dossier", et tu lance ton scrit en tapant "py tonscript.py" dans la console.

Une fois que tu sais faire ça, tu pourras te lancer dans d'autres configurations plus compliquées. Mais il faut partir de la base.

D'accord j'ai compris :)

Donc peu importe avec quel IDE je code, la meilleure façon d'exécuter le script est de passer par cette méthode ?

Pour commencer. Les outils plus riches sont utiles, mais il faut partir du plus simple avant de les utiliser. Entraîne toi avec cette méthode d'abord, après tu pourras configurer des choses plus évoluées.

D'accord merci ! :)

+1 vote

avec notepad++ tu as un plugin python accessible via :

"Compléments > PyNPP "

tu dois surement sélectionner la 1° option "Runfile in Python" ce qui ouvre et ferme directement la fenetre d'execution du script python

en fait il faut selectionner le choix en dessous "Run file in python interactive" ; ca ouvre python en mode commande et affiche le resultat du script courant, sans se refermer

répondu 11-Fev-2015 par foxmask (2,880 points)
...