部署依赖JVM的Python Flask应用至Google Cloud遇JVMNotFoundException求助
解决Google Cloud部署Flask应用时JVM缺失的问题
问题原因
Google Cloud的标准Python运行时(如python38)默认未预装JVM,而你的应用依赖Konlpy(需通过JPype1调用JVM),因此触发JVMNotFoundException。
解决方案:使用自定义运行时(Custom Runtime)
通过Docker构建包含Python和JVM的镜像,让应用运行在具备JVM的环境中。
1. 创建Dockerfile
在项目根目录新建Dockerfile,内容如下:
# 基于Python 3.8官方镜像 FROM python:3.8-slim # 安装适配Konlpy 0.6.0的OpenJDK 11 RUN apt-get update && apt-get install -y openjdk-11-jdk && rm -rf /var/lib/apt/lists/* # 配置JAVA_HOME,让JPype1能自动识别JVM路径 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64 ENV PATH $JAVA_HOME/bin:$PATH # 设置工作目录 WORKDIR /app # 安装Python依赖 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码到镜像 COPY . . # 启动Gunicorn服务,绑定到平台指定端口 CMD ["gunicorn", "--bind", ":$PORT", "main:app"]
注意:将main:app替换为你实际的Flask应用入口(比如主文件是app.py就写app:app)
2. 修改app.yaml
替换原有配置为自定义运行时设置:
runtime: custom env: flex
3. 重新部署应用
执行部署命令:
gcloud app deploy
验证
部署完成后,调用依赖Konlpy的路由,确认JVM已正常加载,错误不再出现。
内容的提问来源于stack exchange,提问作者José Carlos
相关产品推荐
相关产品推荐

