Comment exécuter un programme Python directement?
J'ai créé un fichier .py (disons, mnik.py ) dans gedit. Il fonctionne bien dans le terminal.
La commande va
python3 mnik.py
Mais chaque fois que je clique sur le fichier, il est ouvert avec gedit. Je ne peux pas l'exécuter directement en cliquant.
Que faire?
python3
sur la ligne de commande avec un argument est un excellent moyen d'exécuter des scripts python. C'est en fait la façon la plus simple d'exécuter un programme qui nécessite un terminal et des arguments (comme beaucoup de mes propres scripts, mais aussi des programmes commemercurial
,sphinx
). Voulez-vous expliquer pourquoi ce que je fais depuis plus de 20 ans n'est pas la bonne façon?./scriptname
ne valide pas votre affirmation selon laquelle l'exécution d'un script à partir de la ligne de commande à l'aide depython3
. Il existe différentes façons d'exécuter des scripts python et fairepython3 ./mnik.py
est également une bonne façon de faire les choses, c'est juste différent (et au moins vous obtenez python3 de cette façon et non python2 comme c'est plus probable avec la plupart des réponses jusqu'à présent)Réponses:
Il y a deux choses nécessaires.
#!
ligne indiquant au système d'exploitation quel interprète utiliser. Dans votre cas, votre toute première ligne dans le code doit être#!/usr/bin/env python3
Vous devez ouvrir le gestionnaire de fichiers, aller dans Edition -> Préférences -> Comportement, et sélectionner quoi faire avec les fichiers exécutables
chmod +x /path/to/script.py
et dans l'interface graphique, faites un clic droit sur le fichier et modifiez ses propriétés -> AutorisationsLa toute première ligne est appelée ligne shebang et doit commencer par
#!
; ce qui vient ensuite est le nom de l'interprète qui lira votre code. Dans le cas où vous utilisez,python3
vous pouvez utiliser soit#!/usr/bin/python3
ou#!/usr/bin/env python3
pour la portabilité. Si vous n'utilisez pas de code qui sera spécifique à la version python - utilisez simplement#!/usr/bin/env python
Remarque sur la sortie du script:
Si votre script imprime la sortie sur la console, il devra avoir une fenêtre de terminal ou utiliser des boîtes de dialogue GUI telles que
zenity
. Préférez utiliser l'Run in Terminal
option si vous voulez voir le code. Si vous voulez que le script fasse quelque chose sans voir la sortie de la console - utilisez l'Run
option.De plus, si vous avez des paramètres de ligne de commande, comme
sys.argv[1]
dans le script, vous ne pouvez pas les définir à moins que la fenêtre de terminal ne soit ouverte.la source
Files
programme sur le lanceur. Dans Windows-My Computer
nautilus
dans le Terminal#!
(shebang) dans des scripts Python, et quelle forme cela devrait-il prendre?#!/usr/bin/env python
invoquera Python2 sur la plupart des systèmes Ubuntu. Bien que vous puissiez rendre un script Python écrit pour Python3 compatible avec Python2, je ne suppose pas que l'OP l'ait fait.#!/usr/bin/env python3
semble un shebang plus appropriéVous devez mettre l'emplacement du programme pour exécuter votre code sur la première ligne et vous devez ensuite définir le script pour qu'il s'exécute en tant qu'exécutable en modifiant ses autorisations. Cela suppose que vous lancez vos applications à partir d'un terminal ou d'un autre script.
Trouvez votre installation Python
Ajoutez l'emplacement des programmes à la ligne supérieure de votre programme avec un
#!
devantDéfinissez le script Python pour avoir des droits d'exécution
Vous pouvez maintenant exécuter le script directement
Liste de code pour test.py
la source
Si vous voulez exécuter ce programme sans taper,
python3 mnik.py
vous devez rendre le script exécutable et assurez-vous qu'ilpython3
est utilisé pour l'exécuter.Le premier que vous pouvez faire en exécutant
la seconde, vous pouvez le faire en ajoutant comme première ligne d'un script une ligne shebang qui invoque python3 . Sur tous les systèmes Ubuntu avec lesquels j'ai travaillé et fournis avec python3, vous pouvez obtenir python3 en ajoutant cette ligne en haut:
Après ces deux changements, vous pouvez taper
/path/to/mnik.py
,./mnik.py
ou simplementmnik.py
(ce dernier nécessite que le script soit dans votre PATH).Si vous faites ces changements que vous pouvez également envisager de rebaptiser
mnik.py
àmnik
, qui est pratique courante avec les paquets Python avec des commandes qui sont publiées sur PyPI.la source
/
disparu à l'avant là-bas. Veuillez expliquer ce que c'est dans votre commentaire. Est-ce le shell bash? Est-ce Windows Command.com? De quoi invoquez-vous le programme et avec quelle syntaxe de ligne de commande?