如何从Java执行安装在Python虚拟环境中的Python工具

如何从Java执行安装在Python虚拟环境中的Python工具,java,python,pip,virtualenv,Java,Python,Pip,Virtualenv,我想从Java源代码运行安装在Python虚拟环境中的Python工具。我可以为此使用哪些Java库 我已经尝试了以下代码: Runtime.getRuntime().exec(“/Users/xxx/Documents/venv/bin/python3.7 yyy); 但是这段代码不起作用。它是从虚拟环境(venv)运行Python脚本(例如,yyy=script.py)。因此,它给了我一个错误,说没有名为yyy的文件。但我的要求是运行安装在虚拟环境venv中的Python工具。您的要求可能需

我想从Java源代码运行安装在Python虚拟环境中的Python工具。我可以为此使用哪些Java库

我已经尝试了以下代码:
Runtime.getRuntime().exec(“/Users/xxx/Documents/venv/bin/python3.7 yyy);


但是这段代码不起作用。它是从虚拟环境(
venv
)运行Python脚本(例如,
yyy=script.py
)。因此,它给了我一个错误,说没有名为
yyy
的文件。但我的要求是运行安装在虚拟环境
venv

中的Python工具。您的要求可能需要一些澄清,但我怀疑您可以使用。用于控制命令的工作目录。并使stdio“自动”工作。永远不要硬编码用户的主文件夹。您可以使用来检索主文件夹

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根。

感谢您的回答,这给了我一个错误
/Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python:无法打开文件“yyy”:[Errno 2]没有这样的文件或目录
。我在
Runtime.getRuntime().exec(“/Users/xxx/Documents/venv/bin/python3.7 yyy”)中遇到了相同的错误您尚未在yyy上对该版本运行pip安装。我已经运行了。我检查了好几次(我不知道为什么它会检查这个文件位置
/Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python
尝试使用Python工具的精确路径
yyyy
。例如:进程p=
pb.command(“bin/python3.7”、“.venv/lib/python3.7/site packages/yyy”)<代码>我必须提供工具<代码> yyy < /代码>如Malinda提到的。请考虑修改你的答案。@埃利奥特