我想从Java源代码运行安装在Python虚拟环境中的python工具。我可以使用哪些可能的Java库来实现此目的?
我已经尝试过下面的代码:Runtime.getRuntime().exec("/Users/xxx/Documents/venv/bin/python3.7 yyy);
但是这个代码不起作用。它是从虚拟环境(venv
)运行Python脚本(例如,yyy= script.py
)。因此,它会给我一个错误,告诉我没有名为yyy
的文件。但我的要求是运行安装在虚拟环境venv
中的Python工具。
发布于 2020-09-03 11:57:24
您的需求可能需要一点说明,但我怀疑您可以使用ProcessBuilder
使其工作。使用directory(File)
控制命令的工作目录。和inheritIO()
,让stdio“自动”工作。永远不要硬编码用户的主文件夹。您可以使用System.getProperty(String)
检索主文件夹。
ProcessBuilder pb = new ProcessBuilder();
pb.directory(new File(System.getProperty("user.home"), "Documents/venv/"));
pb.inheritIO();
try {
Process p = pb.command("bin/python3.7",
"lib/python3.7/site-packages/yyy").start();
p.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
与依赖"Documents/venv"
来包含pyvenv根目录相比,使用System.getenv(String)
可能更好。
https://stackoverflow.com/questions/63716451
复制相似问题