【发布时间】:2020-04-21 01:01:33
【问题描述】:
我构建了一个 AWS Batch 计算环境。我想在作业中运行 python 脚本。 这是我正在使用的 docker 文件:
FROM python:slim
RUN apt-get update
RUN pip install boto3 matplotlib awscli
COPY runscript.py /
ENTRYPOINT ["/bin/bash"]
我的任务定义中的命令是:
python /runscript.py
当我在 AWS 控制台中提交作业时,我在 CloudWatch 中收到此错误:
/usr/local/bin/python: /usr/local/bin/python: cannot execute binary file
作业的状态为 FAILED。
出了什么问题?我在本地运行容器,我可以毫无错误地启动脚本。
【问题讨论】:
-
你的python文件有shebang吗?
-
不!是强制性的吗?$
-
没有。但是如果
PATH设置不正确,那么您可以插入一个shebang 来通知解释器在哪里可以找到二进制文件。您的本地 python 可能与容器内部的位置不同。 -
@samthegolden shebang line 在这里无济于事。事实上,由于 OP 显式调用了
python二进制文件,因此忽略了 shebang 行。
标签: python amazon-web-services docker aws-batch