You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Elastic Beanstalk的Spring Boot应用中执行Python脚本

解决AWS Elastic Beanstalk上Spring Boot调用Python脚本的问题

问题根源

Elastic Beanstalk的Java平台环境默认未预装Python运行时,直接调用python3命令会执行失败,这是导致部署后脚本无法运行的核心原因。

解决方案

1. 通过.ebextensions自动安装Python

在Spring Boot项目中添加配置文件,让Elastic Beanstalk部署时自动安装Python3:

  • 在项目的src/main/resources目录下创建.ebextensions文件夹(注意文件夹名开头的点)
  • 在该文件夹内创建python.config文件,写入以下内容:
    packages:
      yum:
        python3: []
    
    部署应用时,Elastic Beanstalk会通过YUM包管理器自动安装Python3。

2. 修正Python命令路径

部分环境中Python3的可执行文件绝对路径为/usr/bin/python3,建议使用绝对路径调用,避免环境变量差异问题:

pb = new ProcessBuilder("/usr/bin/python3", resource1.getURL().toString().substring(5));

3. 处理Jar内脚本路径问题

如果Python脚本打包在Jar包内,ClassPathResource获取的路径无法被ProcessBuilder直接访问,需要先将脚本复制到临时目录:

ClassPathResource resource1 = new ClassPathResource("main.py");
File tempScript = File.createTempFile("main", ".py");
Files.copy(resource1.getInputStream(), tempScript.toPath(), StandardCopyOption.REPLACE_EXISTING);
pb = new ProcessBuilder("/usr/bin/python3", tempScript.getAbsolutePath());
// 脚本执行后自动删除临时文件
tempScript.deleteOnExit();

4. 日志排查定位

查看Elastic Beanstalk的应用日志和系统日志,确认是否存在python3: command not found或文件路径错误的提示,进一步定位问题。

内容的提问来源于stack exchange,提问作者KiteZeng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:06:34