Exécuter un fichier Python dans un terminal


47

Essayer d'apprendre à exécuter mes scripts via le terminal d'Ubuntu régulièrement. Cela étant dit, je suis familier avec bash, wgetet awkêtre appelé, mais comment puis-je appeler des fichiers python à exécuter dans le terminal? J'aimerais bien apprendre cela, mais je ne sais pas où faire des recherches. J'ai un .pywfichier qui référence plusieurs .pyfichiers dans un dossier.


Cas différentiel dans ce qui suit parce que le titre d'origine est trop général, y compris - à propos de l'exécution d'un script python dans un terminal pour appeler une fonction stackoverflow.com/q/25837063/54964
Léo Léopold Hertz le

Réponses:


81

Option 1: appelez l'interprète

  • Pour Python 2: python <filename>.py
  • Pour Python 3: python3 <filename>.py

Option 2: laisser le script appeler l'interprète

  1. Assurez-vous que la première ligne de votre fichier a #!/usr/bin/env python.
  2. Rendez-le exécutable - chmod +x <filename>.py.
  3. Et lancez le comme ./<filename>.py

quelle est la raison, que lorsque je veux exécuter mon fichier .py, il ne fonctionne qu'avec l'option 1 de votre méthode et que la seconde donne une erreur de syntaxe?
Krsztr

Et si vous voulez ouvrir un nouveau fichier Python?
Asmgx

8

Préfixez simplement le nom de fichier du script avec python. Par exemple:

python filename.py

5

Il est également intéressant de noter qu'en ajoutant un -iindicateur après python, vous pouvez garder votre session en cours d'exécution pour un codage ultérieur. Comme ça:

python -i <file_name.py>

3
python <filename.py>

Pyw devrait fonctionner de la même manière, je pense. Vous pouvez également démarrer une console interactive avec juste

python

De plus, vous pouvez éviter de faire appel explicitement à python en ajoutant un shebang en haut du script:

#!/usr/bin/env python

... ou n'importe quel nombre de leurs variations


2

Première exécution de la commande suivante

chmod +x <filename>.py

Puis, en haut du script, ajoutez #!le chemin de l’interpréteur Python:

#!/usr/bin/python

Si vous souhaitez que le script soit indépendant de l'emplacement de l'interpréteur Python, vous pouvez utiliser le envprogramme. Presque toutes les variantes Unix prennent en charge les éléments suivants, en supposant que l'interpréteur Python se trouve dans un répertoire de l'utilisateur $PATH:

#! /usr/bin/env python

0

Modifiez les répertoires en utilisant cdle répertoire contenant le fichier .py et exécutez l’une des deux commandes suivantes:

python <filename>.py  # for Python 2.x  
python3 <filename>.py # for Python 3.x 

Vous pouvez également exécuter l'une des deux commandes suivantes:

python /path/to/<filename>.py  # for Python 2.x  
python3 /path/to/<filename>.py # for Python 3.x 

-2

Essayez d'utiliser la commande python3au lieu de python. Si le script a été écrit en Python3 et que vous essayez de l'exécuter avec Python2, vous pourriez avoir des problèmes. Ubuntu a les deux; changer le nom du programme en python3(au lieu de le remplacer python) a rendu cela possible. Ubuntu a besoin de la version 2.7 (à compter du 16/02/2017), NE PAS donc supprimer ou supprimer Python2, mais conservez-les tous les deux. Prenez l’habitude d’utiliser Python3 pour exécuter des scripts, qui peuvent être exécutés indifféremment.


1
-1 Python 3 ne peut pas exécuter de scripts Python 2 (à quelques exceptions près).
Wjandrea

Mon mauvais, tu as raison. C’est probablement pourquoi Ubuntu utilise toujours Python 2. Désolé, merci de me corriger.
Tony
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.