我对python脚本的调用如下:
root = Paths.get(".").toAbsolutePath().normalize().toString();
cmd = "python " + root + "/my_script.py"
Runtime.getRuntime().exec(cmd)
不过,我想做的是将所有这些Python的东西打包到我的jar中,这样我就可以在任何机器上运行这个应用程序(唯一的要求是Java 8——没有Python或它的任何包)。我发现了
虚拟人
在IDEA中,我决定用SDK的方式配置virtualenv,因此创建了一个virtualenv环境
this tutorial
. 在环境设置中添加了所需的包,并将my_script.py放在script s目录中。最终形成了这样的结构:
/
âââ src
â âââ main.java
â âââ sample.fxml
âââ venv
âââ include
â
âââ scripts [a bunch of default scripts here + my_script.py]
âââ lib
âââ site-packages [a bunch of libraries here including the ones I require]
âââ tcl8.6
我应该说杰特布莱恩的教程真的需要继续,因为我从这里完全迷失了。我只是不知道如何引用my_script.py,以便它使用来自venv的包,而不是全局包。