J'ai essayé de chercher la réponse sur Google, mais sans succès.
Je dois utiliser mon ordinateur supercalculateur Works, mais pour que mon script python s'exécute, il doit être exécuté via un script Shell.
Par exemple, je veux que job.sh
exécute python_script.py
Comment cela peut-il être accompli?
Assurez-vous simplement que l'exécutable python est dans votre variable d'environnement PATH, puis ajoutez-le dans votre script.
python path/to/the/python_script.py
Détails:
#!/bin/sh python python_script.py
chmod u+x job.sh
./job.sh
Supposons que vous ayez un fichier python hello.py
Créez un fichier appelé job.sh
qui contient
#!/bin/bash
python hello.py
marquez-le comme exécutable en utilisant
$ chmod +x job.sh
puis lancez-le
$ ./job.sh
Modifiez votre script hello.py
et ajoutez-le comme première ligne
#!/usr/bin/env python
marquez-le comme exécutable en utilisant
$ chmod +x hello.py
puis lancez-le
$ ./hello.py
À mon humble avis
python /path/to/script.py
Est tout à fait faux, surtout en ces jours. Quel python? python2.6? 2,7? 3,0? 3,1? La plupart du temps, vous devez spécifier la version de python dans la balise Shebang du fichier python. J'encourage à utiliser
#!/usr/bin/env python2 # ou python2.6 ou python3 ou même python3.1pour la compatibilité.
Dans ce cas, il est préférable d’exécuter le script et de l’appeler directement:
#!/bin/bash /chemin/vers/script.py
Ainsi, la version de Python dont vous avez besoin n’est écrite que dans un fichier. De nos jours, la plupart des systèmes ont python2 et python3 et il arrive que le lien symbolique python pointe vers python3 , alors que la plupart des gens s’attendent à ce qu’il pointe vers python2 .
Cela fonctionne mieux pour moi: ajoutez-le en haut du script:
#!c:/Python27/python.exe
(C:\Python27\python.exe est le chemin du python.exe sur ma machine) Ensuite, exécutez le script via:
chmod +x script-name.py && script-name.py
vous devriez pouvoir l'invoquer en tant que python scriptname.py
par exemple
# !/bin/bash
python /home/user/scriptname.py
assurez-vous également que le script est autorisé à exécuter
vous pouvez le rendre exécutable en utilisant chmod u + x scriptname.py
EDIT: battu à elle :-p
Enregistrez le programme suivant sous le nom print.py
:
#!/usr/bin/python3
print('Hello World')
Puis dans le type de terminal:
chmod +x print.py
./print.py
Cela fonctionne pour moi:
Créez un nouveau travail de fichier Shell. Donc, disons: touch job.sh
et ajoutez une commande pour exécuter un script python (vous pouvez même ajouter des arguments de ligne de commande à ce python, je prédéfinis généralement mes arguments de ligne de commande).
chmod +x job.sh
Dans job.sh
, ajoutez les fichiers py suivants, par exemple:
python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file.py"
python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file1.py"
Done with python_file.py
Done with python_file1.py
J'utilise cela généralement lorsque je dois exécuter plusieurs fichiers python avec des arguments différents, prédéfinis.
_ {Note: Juste un bref aperçu de ce qui se passe ici:
python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "completed with python_file.py" .
python python_file.py
, tout simplement. Ensuite, le >> va imprimer et stocker le résultat de ce fichier .py dans le fichier testpy-output.txt. J'utilise ceci et ça marche bien
#/bin/bash
/usr/bin/python python python_script.py
Puisque les autres messages disent tout (et je suis tombé sur ce message en cherchant ce qui suit).
Voici un moyen d'exécuter un script python à partir d'un autre script python:
Python 2:
execfile("somefile.py", global_vars, local_vars)
Python 3:
with open("somefile.py") as f:
code = compile(f.read(), "somefile.py", 'exec')
exec(code, global_vars, local_vars)
et vous pouvez fournir des arguments en fournissant un autre sys.argv