J'essaie d'exécuter un script python sur azure batch qui est un dsvm linux afin que le script puisse installer des paquets python et ensuite exécuter le script python.
Voici le code que j'ai utilisé :
try:
from pip import main as pipmain
except ImportError:
from pip._internal import main as pipmain
try:
import pandas as pd
except:
pipmain(['install', 'pandas',"])
import pandas
Lorsque j'exécute le script python script sur la ligne de commande azur Batch, la tâche pool se plante à la dernière instruction (import pandas) bien que je puisse voir dans le fichier journal stdout que les paquets pandas, numpy etc. sont installés.
Il semble que les paquets soient installés à un autre endroit et qu'en essayant d'importer, il essaie d'importer à partir d'un autre endroit. Il donne l'erreur ImportError : Aucun module nommé pandas dans le fichier stderr.txt sur les tâches du pool de lots azur.
La raison pour laquelle j'essaie d'installer des paquets python et d'importer le même script est que la ligne de commande batch azur ne me permet pas d'écrire 2 commandes , quelque chose comme
pip install pandas
python test.py
où il installe d'abord les paquets et ensuite invoque script où il fait juste l'importation de la bibliothèque pandas.
J'ai également utilisé la commande dans le pip install pandas
y pip install --install-option="--prefix=$AZ_BATCH_TASK_WORKING_DIR" pandas
à la tâche de démarrage du pool de lots. AZ_BATCH_TASK_WORKING_DIR selon ma compréhension est le répertoire de travail auquel la tâche et le script ont accès lorsque le lot de tâches s'exécute.
Existe-t-il un moyen d'exécuter le python script avec succès sur Azure Batch. Pour l'instant, je n'exécute qu'une seule commande : import pandas.