J'ai essayé de googler la réponse mais sans succès.
Je dois utiliser le serveur de mon ordinateur de travail, mais pour que mon script python s'exécute, il doit être exécuté via un script shell.
Par exemple, je veux job.sh
exécuterpython_script.py
Comment cela peut-il être accompli?
python python_script.py
votre script shell?python python_script.py
. Ou juste./python_script.py
si le script a un shebang.Réponses:
Assurez-vous simplement que l'exécutable python se trouve dans votre variable d'environnement PATH, puis ajoutez-y votre script
Détails:
chmod u+x job.sh
./job.sh
la source
python --version
, et vous pouvez appliquer la version avecpython3 hello.py
.source PATH/TO/VENV/bin/activate
puis appelerpython python_script.py
/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
existe-t-il un moyen d'inclure mon code python en ligne dans le script bash?Méthode 1 - Créez un script shell:
Supposons que vous ayez un fichier python
hello.py
Créez un fichier appeléjob.sh
qui contientle marquer comme exécutable en utilisant
puis lancez-le
Méthode 2 (MIEUX) - Faites fonctionner le python lui-même à partir du shell:
Modifiez votre script
hello.py
et ajoutez-le comme première lignele marquer comme exécutable en utilisant
puis lancez-le
la source
#!/usr/bin/env python
. N'oubliez pas de vous assurer que vous faites référence à la bonne version de python + chemin pour votre système!Imho, écrire
Est tout à fait faux, surtout de nos jours. Quel python? python2.6? 2,7? 3.0? 3.1? La plupart du temps, vous devez spécifier la version python dans la balise shebang du fichier python. J'encourage à utiliser
pour la compatibilité.Dans ce cas, il est préférable d'avoir le script exécutable et de l'invoquer directement:
De cette façon, la version de python dont vous avez besoin n'est écrite que dans un seul fichier. La plupart des systèmes de nos jours ont python2 et python3 entre-temps, 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 .
la source
python script.py param
?./abc.py -h
Enregistrez le programme suivant sous
print.py
:Puis dans le type de terminal:
la source
Cela fonctionne le mieux pour moi: ajoutez ceci en haut du script:
(C: \ Python27 \ python.exe est le chemin vers le python.exe sur ma machine) Ensuite, exécutez le script via:
la source
Cela fonctionne pour moi:
Créez un nouveau travail de fichier shell. Alors 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
À l'intérieur,
job.sh
ajoutez les fichiers py suivants, disons: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
Je l'utilise généralement lorsque je dois exécuter plusieurs fichiers python avec différents arguments, prédéfinis.
Remarque: Juste un petit aperçu de ce qui se passe ici:
python python_file.py
:, clair et simple. Ensuite, le >> imprimera et stockera la sortie de ce fichier .py dans le fichier testpy-output.txt.la source
Vous devriez pouvoir l'invoquer comme
python scriptname.py
par exempleAssurez-vous également que le script dispose des autorisations nécessaires pour s'exécuter.
Vous pouvez le rendre exécutable en utilisant
chmod u+x scriptname.py
.la source
J'utilise ça et ça marche bien
la source
Puisque les autres messages disent tout (et je suis tombé sur ce post en cherchant ce qui suit).
Voici un moyen d'exécuter un script python à partir d'un autre script python:
Python 2:
Python 3:
et vous pouvez fournir des arguments en fournissant d'autres
sys.argv
la source