【问题标题】:Run a python script on Azure Batch在 Azure Batch 上运行 python 脚本
【发布时间】:2019-04-18 15:57:49
【问题描述】:

我正在尝试在 azure batch 上执行 python 脚本,这是一个 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

当我在 azure Batch 命令行上运行 python 脚本时,池任务在最后一条语句(导入 pandas)处出错,尽管我可以在标准输出日志文件中看到安装了 pandas、numpy 等包。

似乎软件包安装在其他位置,并且在尝试导入时尝试从其他位置导入。它给出了错误 ImportError: No module named pandas in the stderr.txt file on the azure batch pool tasks。

我尝试安装 python 包并将其导入相同脚本的原因是因为天蓝色批处理命令行不允许我编写 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 Batch 上成功运行 python 脚本。在moemt iam 只运行一个命令:import pandas

【问题讨论】:

  • 关于“我试图安装python包并导入相同脚本的原因是因为天蓝色批处理命令行不允许我编写2个命令”,您应该能够指定多个通过将命令嵌入批处理/shell 脚本或使用标准 && 运算符来执行命令。还要确保在任务前添加“/bin/bash -c”或“cmd /c”以打开命令外壳。
  • 感谢 brklein '/bin/bash 命令有效。有没有办法在天蓝色批处理上安装 pip。我已经通过使用 ssh 将它安装到池的节点中,然后运行 ​​pip 命令在 azure 批处理命令行中安装库。
  • 可以加'curl bootstrap.pypa.io/get-pip.py -o get-pip.py && python get-pip.py'
  • 嗨 brklein,我试过 /bin/bash -c "curl bootstrap.pypa.io/get-pip.py -o get-pip.py && python get-pip.py && pip install pandas ”。但是 pip 没有安装。

标签: python azure-data-factory azure-batch


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    启动任务命令将是(对于 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 2018-05-13
      • 2021-11-30
      • 2020-01-09
      • 2022-01-16
      • 2019-12-07
      相关资源
      最近更新 更多