python - 在 Azure Batch 上运行 python 脚本

标签 python azure-data-factory azure-batch

我尝试在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 Batch 命令行上运行 python 脚本时,池任务在最后一个语句(导入 pandas)处出错,尽管我可以在 stdout 日志文件中看到 pandas、numpy 等软件包已安装。

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

我尝试安装 python 包并导入相同脚本的原因是因为 azure 批处理命令行不允许我编写 2 个命令,例如

pip install pandas
python test.py

首先安装软件包,然后调用脚本,仅导入 pandas 库。

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

有没有办法在 Azure Batch 上成功运行 python 脚本。目前我只运行一个命令:import pandas

最佳答案

您需要提供内联 shell 脚本来运行多个命令并利用 shell 扩展。请看这个doc 。您需要运行两个命令,例如:

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

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

关于python - 在 Azure Batch 上运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55749786/

相关文章:

azure - Azure 数据工厂中出现 'This endpoint does not support BlobStorageEvents or SoftDelete' 的原因

Azure 数据工厂通过访问 key 连接到 Blob 存储

python - 如何在 Azure Batch 节点上安装 Python 包

python - 我怎样才能在python中的一行数字中求和?

python - 选择2个不同大小的numpy数组之间最接近的元素

无需 pickle 即可进行序列化的 Python 类设置

azure - 如何在 Azure 批处理帐户中设置具有不同时间增量的作业计划?

python - Flask wtform RadioField 标签不呈现

azure - 如何使用 azure 数据工厂将本地文件移动到不同的目录

c# - 重试使用 Azure Batch 删除池或作业吗?