【发布时间】: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 pandas和pip 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