Recherche de site Web

Comment utiliser un script bash pour exécuter vos scripts Python


Python est un langage de programmation populaire utilisé dans un large éventail d’applications, de l’analyse de données et du calcul scientifique au développement Web et à l’intelligence artificielle. Bash est un langage de script puissant utilisé principalement dans les environnements Unix et Linux pour automatiser les tâches et exécuter des commandes. En combinant les deux langages, les développeurs peuvent créer des scripts puissants capables d’automatiser des tâches et des flux de travail complexes.

Dans cet article, nous allons explorer diverses techniques d’exécution de scripts Python avec bash, notamment la transmission d’arguments, l’activation d’environnements virtuels et l’exécution de scripts en arrière-plan. Nous fournirons également des exemples de scripts du monde réel qui démontrent ces techniques en action.

Dans ce tutoriel, vous allez apprendre :

  • Comment exécuter des scripts Python à partir d’un script bash
  • Passer des arguments à des scripts Python à partir d’un script bash
  • Activation d’environnements virtuels pour les scripts Python dans un script bash
  • Exécution de scripts Python en arrière-plan à l’aide d’un script bash

Comment exécuter des scripts Python à partir d’un script bash

Pour exécuter un script Python à partir d’un script bash, nous devons d’abord passer au répertoire contenant le script Python à l’aide de la commande cd, puis utiliser la commande python pour exécuter le script. Voici un exemple mis à jour :

#!/bin/bash

Change to the directory containing the Python script
cd /path/to/python/script/directory

Run the Python script
python myscript.py

Dans ce script mis à jour, nous passons d’abord au répertoire contenant le script Python à l’aide de la commande cd, puis nous exécutons la commande python pour exécuter le script Python myscript.py. Notez que le chemin d’accès au fichier de script doit être spécifié par rapport au répertoire courant ou en tant que chemin absolu.

Passer des arguments à des scripts Python à partir d’un script bash

Nous pouvons passer des arguments à un script Python à partir d’un script bash en les spécifiant après le nom du fichier de script Python lors de l’utilisation de la commande python. Les arguments seront accessibles dans le script Python via la liste sys.argv. Voici un exemple :

#!/bin/bash

cd /path/to/python/script/directory
python myscript.py $1 $2 $3

Dans ce script, nous exécutons le script Python myscript.py et lui transmettons trois arguments ($1, $2 et $3).

Dans le script Python, nous pouvons accéder aux arguments en utilisant la liste sys.argv :

import sys

print("Argument 1:", sys.argv[1])
print("Argument 2:", sys.argv[2])
print("Argument 3:", sys.argv[3])

Dans cet exemple de script Python, nous accédons aux trois arguments passés à partir du script bash à l’aide de la liste sys.argv et les imprimons dans la console. En passant des arguments d’un script bash à un script Python, nous pouvons personnaliser le comportement du script et le rendre plus flexible et réutilisable.

Activation d’environnements virtuels pour les scripts Python dans un script bash

Lorsque vous travaillez avec Python, il est courant d’utiliser des environnements virtuels pour isoler les dépendances du projet et garantir des environnements d’exécution cohérents. Si vous utilisez un environnement virtuel pour votre script Python, vous devez l’activer avant d’exécuter le script. Voici un exemple de la façon d’activer un environnement virtuel pour un script Python dans un script bash :

#!/bin/bash

Activate the virtual environment
source /path/to/venv/bin/activate

Change to the directory containing the Python script
cd /path/to/python/script/directory

Run the Python script
python myscript.py

Dans ce script, nous utilisons la commande source pour activer l’environnement virtuel situé dans /path/to/venv. Nous passons ensuite au répertoire contenant le script Python à l’aide de la commande cd et exécutons le script à l’aide de la commande python.

NOTE
Notez que le chemin d’accès à l’environnement virtuel peut varier en fonction de votre configuration, veillez donc à modifier le chemin d’accès pour qu’il corresponde à votre propre environnement. En outre, si votre environnement virtuel nécessite des dépendances spécifiques qui ne sont pas installées par défaut sur le système, vous devrez peut-être d’abord les installer dans l’environnement virtuel avant d’exécuter le script.

Exécution de scripts Python en arrière-plan à l’aide d’un script bash

L’exécution d’un script Python en arrière-plan peut être utile lorsque vous souhaitez exécuter le script sans garder la fenêtre du terminal ouverte. Dans un script bash, vous pouvez utiliser la commande nohup pour exécuter un script Python en arrière-plan et rediriger sa sortie vers /dev/null pour l’empêcher de remplir l’espace disque. Voici un exemple :

#!/bin/bash

Change to the directory containing the Python script
cd /path/to/python/script/directory

Run the Python script in the background
nohup python myscript.py > /dev/null 2>&1 &

Dans ce script, nous passons d’abord au répertoire contenant le script Python à l’aide de la commande cd. Nous utilisons ensuite la commande nohup pour exécuter le script Python en arrière-plan, suivie de la commande python et du nom du fichier de script.

Nous redirigeons la sortie du script vers /dev/null, qui est un fichier spécial qui ignore toutes les données qui y sont écrites. Cela empêche la sortie du script de remplir l’espace disque ou d’interférer avec d’autres processus. Enfin, nous ajoutons le symbole & pour exécuter le script en arrière-plan.

Lorsque vous exécutez ce script, le script Python commence à s’exécuter en arrière-plan et vous voyez un message similaire à celui-ci :

nohup: ignoring input and appending output to ‘nohup.out’

Vous pouvez maintenant fermer la fenêtre du terminal et le script Python continuera à s’exécuter en arrière-plan jusqu’à ce qu’il se termine ou soit terminé manuellement.

L’exécution de scripts Python en arrière-plan peut être utile pour les scripts de longue durée, tels que les serveurs Web ou les tâches de traitement de données, qui ne nécessitent pas d’entrée ou d’interaction de l’utilisateur. En utilisant un script bash pour exécuter le script Python en arrière-plan, vous pouvez automatiser le processus et vous assurer qu’il continue de s’exécuter même après que vous vous êtes déconnecté du terminal.

Conclusion

Dans cet article, nous avons exploré diverses techniques d’exécution de scripts Python avec bash, notamment la transmission d’arguments, l’activation d’environnements virtuels et l’exécution de scripts en arrière-plan. Ces techniques peuvent considérablement améliorer la puissance et la flexibilité des scripts Python, permettant aux développeurs d’automatiser facilement des tâches et des flux de travail complexes. En maîtrisant l’art d’exécuter des scripts Python avec bash, les développeurs peuvent libérer tout le potentiel de ces puissants langages de script et faire passer leurs compétences au niveau supérieur. Grâce aux connaissances et compétences de base fournies dans cet article, les développeurs peuvent créer des scripts robustes et efficaces capables de gérer un large éventail de cas d’utilisation et d’ouvrir de nouvelles possibilités d’automatisation et d’efficacité.

Articles connexes: