java调用python指定virtualenv虚拟环境下才能运行的python文件

来源:互联网 发布:微盘源码搭建 编辑:程序博客网 时间:2024/06/03 05:17

有时候我们想要通过java调用一个python文件,而这个python文件又必须在特定的virtualenv虚拟环境下才能运行。如果直接将这个python文件所需要的包安装到python系统环境下难免有些暴力,我想到了如下方法解决这个问题:

创建虚拟环境后,如果虚拟环境的文件夹叫做env,我们平时激活虚拟环境的命令是 source env/bin/activate 。在bin目录中还有一个文件叫做activate_this.py,我们通过这个文件切换到虚拟环境,在一个python文件(假设叫a.py)中调用该文件(activate_this.py),再书写想要调用的目标python文件,再由Java调用a.py即可完成指定虚拟环境下的python文件调用。


python文件名为a.py,代码如下

import osactivate_this = 'path/to/activate_this.py'execfile(activate_this, dict(__file__=activate_this))os.system("python target.py")

java代码

import java.io.BufferedReader;import java.io.InputStreamReader;public class Test {public static void main(String[] args) {try {System.out.println("start");Process pr = Runtime.getRuntime().exec("python /home/kui/桌面/a.py");BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));String line;while ((line = in.readLine()) != null) {System.out.println(line);}in.close();pr.waitFor();System.out.println("end");} catch (Exception e) {e.printStackTrace();}}}

0 0
原创粉丝点击