java调python管道堵塞_Java调用python时出现: ImportError: No module named解决方法

首先背景是这样的:

1、python环境下调用没有问题,如果有问题那么肯定是named后面的包没有安装,或是安装没有成功。至于如何安装网上有很多的教程,比如pip / easy_install 等方式都可以去安装, 这里就不做累述。

2、对于python环境下没有问题时,用java去调用的时候出现了上述no module named , 而此时分两种情况去看

A、如果你要部署的是windows的话,对于java web工程来说,python的文件依赖都会去java的WEB-INF下面的lib下的Lib去找相对应的py文件

B、如果是linux的话,没特殊指定的情况下,他也会去当前工程的WEB-INF下面的lib下的Lib去找。

所有解决的方式就是给对应的python指定lib的目录

Properties props = new Properties();

props.put("python.home", "/usr/lib/python2.6");

再执行PythonInterpreter方法之前加上上面的方法,PythonInterpreter.initialize(preprops, props, s);

其中preprops 是Properties preprops = System.getProperties();

s为传递参数的字符数组 例如: String[] s = {host,port,username,password};

3、最终java调用python时会先去找python.home下面的Lib文件,这样就可以解决上面的问题。

你可能感兴趣的:(java调python管道堵塞)