在 Azure Batch 上运行 python 脚本



我正在尝试在 Azure 批处理(即 Linux DSVM)上执行 python 脚本,以便脚本可以安装 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

当我在 azure 批处理命令行上运行 python 脚本时,池任务在最后一条语句(导入熊猫)处出错,即使我可以在 stdout 日志文件中看到安装了熊猫、numpy 等软件包。

似乎软件包安装在其他位置,并且在尝试导入时正在尝试从其他位置导入。它给出错误导入错误:Azure 批处理池任务上的 stderr.txt 文件中没有名为 pandas 的模块。

我尝试安装 python 包并使用相同的脚本导入它的原因是 azure 批处理命令行不允许我编写 2 个命令,类似于

pip install pandas
python test.py

它首先安装软件包,然后调用脚本,它只执行熊猫库的导入。

我还在批处理池的启动任务中使用了pip install pandaspip install --install-option="--prefix=$AZ_BATCH_TASK_WORKING_DIR" pandas中的命令。AZ_BATCH_TASK_WORKING_DIR根据我的理解,任务批处理运行时任务和脚本可以访问的工作目录

有没有办法在 Azure 批处理上成功运行 python 脚本。在妈妈我只运行一个命令:导入熊猫

您需要提供一个内联 shell 脚本来运行多个命令并利用 shell 扩展。请参阅此文档。您需要运行两个命令,如下所示:

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

此外,任务在特定于上下文的目录下运行(即,启动任务在启动任务目录中运行,而普通任务将在不同的目录中运行,尽管$AZ_BATCH_TASK_WORKING_DIR名称相同),并且用户身份还可以修改运行任务的用户上下文。

虽然fpark的回答让我走上了正确的轨道,但我并没有成功。但是,我遇到了这个对我有用的帖子。

启动任务命令将是(对于 python3):

/bin/bash -c "sudo apt-get -y update && sudo dpkg --configure -a && sudo apt-get install -y python3-pip && pip3 install --upgrade pip && sudo pip3 install pandas"

相关内容

  • 没有找到相关文章

最新更新