有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用运行时从Java代码调用Python脚本。exec():ImportError:没有名为sklearn的模块

我有一个调用python脚本的Java程序。该python脚本具有以下导入

 import numpy as np
 from sklearn import metrics

在我的mac上,我已经有了python 2.7,现在我安装了python 3.7 我还使用pip3安装了numpy、scipy和sklearn模块

在Intellij中,我选择了python 3.7解释器和Java1。8我的项目

当我运行java程序时,该程序使用以下命令调用python脚本

 Process p = Runtime.getRuntime().exec("python /mydir/report.py");

我得到这个错误

ImportError: No module named sklearn

我的怀疑是intellij在某种程度上使用了Python2.7和Python3.7。原因是当我使用python2在pyCharm中直接运行python脚本时。7,我得到了相同的错误,但与3.7不同

请帮助解决这个问题,我已经处理了所有相关的SO问题,对这种情况没有帮助


共 (3) 个答案

  1. # 1 楼答案

    确保您使用的是正确版本的python。在一些操作系统中,python3。x在命令行上被称为python3,因此您需要将exec代码更改为 "python3 /mydir/report.py"

    如果您使用的是python3,pip将随安装一起提供,因此,您可能还需要运行pip install -U scikit-learn

  2. # 2 楼答案

    答案在你的问题中:没有名为sklearn的模块。 尝试安装sklearn:

    pip install -U scikit-learn