AWS App Runner中Flask应用的gunicorn未加入PATH问题排查
解决AWS App Runner中gunicorn找不到的问题
针对你遇到的exec: "gunicorn": executable file not found in $PATH错误,虽然已通过requirements.txt安装gunicorn,但因安装路径不在运行时的PATH中导致找不到,以下是可行的解决办法:
方法1:使用gunicorn的绝对路径启动
先修改构建命令,添加查看gunicorn安装路径的步骤:
pip3 install -r requirements.txt && which gunicorn
查看构建日志,找到输出的gunicorn绝对路径(比如/usr/local/bin/gunicorn),然后将启动命令替换为该绝对路径:
/usr/local/bin/gunicorn --bind '0.0.0.0:8000' app:server
方法2:用--user参数安装到用户目录
修改构建命令,让pip把包安装到当前用户的bin目录(该目录默认在PATH中):
pip3 install --user -r requirements.txt
之后启动命令保持原命令即可,或保险起见直接使用用户目录下的路径:
~/.local/bin/gunicorn --bind '0.0.0.0:8000' app:server
方法3:使用虚拟环境(同时解决root权限警告)
改用虚拟环境隔离依赖,避免root权限安装带来的问题:
构建命令修改为:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
启动命令改用虚拟环境中的gunicorn路径:
venv/bin/gunicorn --bind '0.0.0.0:8000' app:server
问题原因说明
你以root用户执行pip安装时,gunicorn可能被安装到了App Runner运行容器的PATH未包含的目录,或是构建阶段与运行阶段的PATH存在差异,导致运行时找不到可执行文件。上述方法均能通过指定明确路径或调整安装位置解决该问题。
内容的提问来源于stack exchange,提问作者Chu_bot
相关产品推荐
相关产品推荐

