【问题标题】:Executing python function using java (spring boot) in EC2在EC2中使用java(spring boot)执行python函数
【发布时间】:2020-11-19 16:20:02
【问题描述】:

我正在尝试执行一个 python 函数,该函数写在一个 .py 文件中,该文件来自我部署到 AWS EC2 的 java 项目(spring boot)。

一开始我在资源文件夹中找到了 .py 文件,但它不能正常工作,所以我将 .py 文件上传到 S3 并在每次需要时从那里下载。

我使用以下来运行python文件:

Process processBuilder = Runtime.getRuntime().exec("python word2vec.py");
   

本地效果很好,但是由于 word2vec.py 具有依赖项,例如 gensim,因此在 EC2 实例(基于 Linux)中执行时,我收到错误“ImportError:没有名为 gensim 的模块”,这是有道理的,因为我没有t 将其安装在机器上。

使用 Python 的 IntelliJ 插件我在项目中创建了一个虚拟环境并安装了 gensim 以便它在本地工作,有没有办法在 EC2 实例中做到这一点?

由于项目打包成jar文件,即使.py位于资源文件夹,“Runtime.getRuntime().exec(...)”函数也无法访问,我得到“找不到文件”。

有没有办法将所有内容保存在 java 项目/jar 中?或者我需要在 EC2 实例上手动安装 python 虚拟环境?

【问题讨论】:

    标签: java python amazon-web-services spring-boot amazon-ec2


    【解决方案1】:

    我找不到从资源中运行 .py 文件的方法,因此我将它们上传到 S3 并在我想运行这些脚本之前下载它们。 由于 .py 文件非常小,因此运行速度非常快。

    另外,我必须在我的 EC2 Java 机器上下载并安装 python 虚拟环境。

    This blog 帮助我理解了 python 虚拟环境。

    还有这个question,了解如何在虚拟环境中使用python版本运行文件。

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2015-09-28
      • 2019-08-13
      • 2021-07-26
      相关资源
      最近更新 更多