Docker构建报错 /bin/sh: python: not found 问题咨询
问题原因
/bin/sh: 1: python: not found报错的核心原因是系统全局可执行路径下不存在名为python的程序:
你使用的基础镜像mcr.microsoft.com/playwright:focal基于Ubuntu 20.04(Focal)制作,该版本系统默认仅提供python3、pip3命令,安装python3-pip包时不会自动创建python指向python3的软链接,因此执行python开头的命令时Shell无法匹配到对应可执行文件。
额外注意:Dockerfile的合法注释标识符是#,原代码中写在命令末尾的// Results in error不属于Dockerfile合法注释,构建时会被当做命令参数传入Shell,需要删除或替换为#开头的注释内容。
修复方案
可根据实际使用场景二选一:
- 最小改动方案:直接把调用Python的命令替换为系统已存在的
python3命令,修改后对应构建行为:
RUN python3 -m playwright install
- 兼容硬编码场景:如果项目代码、第三方依赖里存在硬编码调用
python命令的逻辑,可以在apt安装依赖阶段追加python-is-python3包,由包管理自动创建python到python3的软链接,修改后的apt安装行为:
RUN apt-get update && apt-get install -y python3-pip python-is-python3
修改完成后原有的RUN python -m playwright install命令无需调整即可正常运行。
内容的提问来源于stack exchange,提问作者Mars2024
相关产品推荐
相关产品推荐

