我有一个调用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
当我运行使用命令
调用python脚本的Java程序时 Process p = Runtime.getRuntime().exec("python /mydir/report.py");
我收到此错误
ImportError: No module named sklearn
我怀疑intellij是否以某种方式使用python 2.7和python 3.7。原因是当我直接使用python2.7在pyCharm中运行python脚本时,出现了相同的错误,但不是3.7
请帮助解决此问题,我已经经历了所有相关的SO问题,对这种情况没有帮助
答案 0 :(得分:2)
尝试使用“ python3”:
Process p = Runtime.getRuntime().exec("python3 /mydir/report.py");
或者,您也可以尝试:
ProcessBuilder pb = new ProcessBuilder("python", "/mydir/report.py"); /*Or python3*/
Process process = pb.start();
有关ProcessBuilder的详细用法:https://examples.javacodegeeks.com/core-java/lang/processbuilder/java-lang-processbuilder-example/
答案 1 :(得分:0)
确保您使用的是正确版本的python。在某些操作系统中,在命令行上将python3.x称为python3
,因此您需要将exec
代码更改为
"python3 /mydir/report.py"
。
如果您使用的是python3,则pip
将随安装一起提供,因此,您可能还需要运行pip install -U scikit-learn
。
答案 2 :(得分:-1)
答案在您的问题中:没有名为sklearn的模块。 尝试安装sklearn:
pip install -U scikit-learn