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.

DᴀʀᴛʜVᴀᴅᴇʀ
la source
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
abhshkdz
la source
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
Winston Ewert
la source
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>
keyan3d
la source
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

IlluminAce
la source
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
Shanaka
la source
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 
Karel
la source
-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.

Tony
la source
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