2009-11-06 8 views
46

Est-il possible d'exécuter un script Python dans Windows XP sans qu'un shell de commande apparaisse momentanément? J'ai souvent besoin d'automatiser WordPerfect (pour le travail) avec Python, et même si mon script n'a pas de sortie, si je l'exécute à partir de sans WP, un shell vide apparaît encore une seconde avant de disparaître. Est-il un moyen d'empêcher cela? Une sorte de redirection de sortie peut-être? Pythonw.exe exécutera le script sans invite de commande.Exécuter le script Python sans console Windows apparaissant

Répondre

77

Le problème est que l'interpréteur Python, Python.exe, est lié au sous-système de la console pour produire la sortie de la console (puisque 90% des cas) - pythonw.exe est plutôt lié au sous-système de l'interface graphique, et Windows ne créera pas de console fenêtre de sortie à moins qu'il en demande un.

This article traite de la programmation GUI avec Python et fait également allusion à pythonw.exe. Il indique également utilement que si vos fichiers Python se terminent par .pyw au lieu de .py, le programme d'installation Windows standard configurera correctement les associations et exécutera votre Python dans pythonw.exe.

Dans votre cas, il ne sonne pas comme un problème, mais le recours à pythonw.exe rend votre application Windows spécifique - d'autres solutions existent pour y parvenir, disons, Mac OS X.

+0

Existe-t-il un moyen de spécifier à l'intérieur du temps de script python d'utiliser 'python.exe' ou' pythonw.exe'? Par exemple, 'def prog_a(): run_as_pythonw() blah blah' contre' def prog_b(): run_as_python() blah blah'. Un mode switch-to-silent, si vous voulez. – p014k

+1

Cela ne fonctionne pas comme vous l'avez expliqué pour utiliser pythonw.exe pour .pyw. Pouvez-vous s'il vous plaît mettre à jour la réponse. son 2016 – YumYumYum

17

Si vous nommez vos fichiers avec l'extension ".pyw", puis windows les exécutera avec l'interpréteur pythonw.exe. Cela n'ouvrira pas la console DOS pour exécuter votre script.

Questions connexes