使用运行时从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问题,对这种情况没有帮助
# 1 楼答案
确保您使用的是正确版本的python。在一些操作系统中,python3。x在命令行上被称为
python3
,因此您需要将exec
代码更改为"python3 /mydir/report.py"
如果您使用的是python3,
pip
将随安装一起提供,因此,您可能还需要运行pip install -U scikit-learn
# 2 楼答案
答案在你的问题中:没有名为sklearn的模块。 尝试安装sklearn:
# 3 楼答案
尝试使用“python3”:
或者,您也可以尝试:
有关ProcessBuilder的详细用法:https://examples.javacodegeeks.com/core-java/lang/processbuilder/java-lang-processbuilder-example/