Запустите сценарий Python в пакете Azure - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь выполнить скрипт Python в пакете Azure, который является Linux-DSVM, чтобы скрипт мог установить пакеты Python и затем выполнить скрипт Python.

Ниже приведен код, который я использовал:

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

Когда я запускаю скрипт python в командной строке Azure Batch, при выполнении последнего оператора (импорт панд) происходит ошибка задачи пула, хотя в файле журнала stdout я вижу, что пакеты pandas, numpy и т. Д. Установлены.

Кажется, что пакеты установлены в каком-то другом месте, и при попытке импорта он пытается импортировать из другого места.Выдает ошибку ImportError: В задачах Azure Batch Pool нет модуля с именем pandas в файле stderr.txt.

Причина, по которой iam пытается установить пакеты python и импортировать его таким же сценарием, заключается в том, что команда azure batchСтрока не позволяет мне писать 2 команды, что-то вроде

pip install pandas
python test.py

, где он сначала устанавливает пакеты, а затем вызывает скрипт, где он просто выполняет импорт библиотеки панд.

Я также использовалкоманда в pip install pandas и pip install --install-option="--prefix=$AZ_BATCH_TASK_WORKING_DIR" pandas при запуске задачи пула пакетов.AZ_BATCH_TASK_WORKING_DIR, насколько я понимаю, является рабочим каталогом, к которому у задачи и сценария есть доступ при выполнении пакета задач

. Есть ли способ успешного запуска сценария python в пакете Azure.На момент запуска только одна команда: import pandas

1 Ответ

1 голос
/ 18 апреля 2019

Вам нужно предоставить встроенный скрипт оболочки для запуска нескольких команд и воспользоваться преимуществами расширения оболочки. Пожалуйста, посмотрите это документ . Вы захотите выполнить две команды, например:

/bin/bash -c "pip install pandas && python test.py"

Кроме того, задачи запускаются в контекстно-зависимых каталогах (т. Е. Задача запуска запускается в каталоге задач запуска, а обычная задача выполняется в другом каталоге, хотя $AZ_BATCH_TASK_WORKING_DIR называется так же) и пользователь тождества также могут изменять пользовательский контекст, для которого запускается задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...