这个东西就是运行不了经过一番探索,有以下:
Process proc;
try {
proc = Runtime.getRuntime().exec("python /home/zheng/zheng/temp.py");// 执行py文件
//用输入输出流来截取结果
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
proc.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
import numpy as np
a = np.arange(12).reshape(3,4)
print(a)
像这种是没有问题的,能够输出
这个导个包也没有问题,但是当我导入import json
时就出问题了,啥也不输出,但是命令行也能运行,这就奇怪了。。。
那咱就看看这个numpy在哪,print(np.__file__)
在命令行和java里面各运行一次,诶,确实不是一个地方,这是命令行的
在java里面输出的是/usr/lib/python2.7
啥啥的目录,这就有意思了,不是一个,难受,打开这个2.7看,确实没有json,有的包很少,也有numpy,所以numpy能成功,json不行,(还有啊,我就奇怪,为啥是2.7,这明明是3的语法嘛,行啦,先看主要矛盾)
我就想要不把用到的包,包拷贝过去一份,我觉得java里的也就能运行了,但是呢吧要是包里还导了包呢,岂不是要拷贝全套的,算了,这不是个办法,
然后呢吧,我觉得要是把这个系统的这个配置给改了就好了,然后脑子抽抽了,把那个2.7给删了,然后就连print("hello")
都输出不了了。。。。。。。。。。。
所以现在的关键是系统的配置或者在java指定python的运行环境。搞他
看python的PATHONPATH有没有错,打开.bashrc一看,就没有这个东西,那就是我找错了。
usr/bin/python2.7 不能删,跟系统有关