java运行 python脚本爬虫程序 给参数 获取返回值 java调用python和命令行不一致

15 篇文章 0 订阅
4 篇文章 0 订阅

这个东西就是运行不了经过一番探索,有以下:

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 不能删,跟系统有关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值