繁体   English   中英

导出的eclipse-plugin无法执行python脚本

[英]Exported eclipse-plugin is not able to execute python script

我希望有人可以帮助我了解如何解决我的问题:

导出的eclipse插件的python.exe和调用的python脚本(test.py)的路径错误。 因此,当插件正常调用脚本时,它将引发错误。

有没有一种方法可以将python和相应的python文件与.jar一起编译,或者有另一种方法可以正确地完成此操作?

我创建了一个Eclipse插件,该插件通过ProcessBuilder-class调用python脚本。 python脚本导入lxml并执行两个xml文件的一些合并步骤。 当我以“ Eclipse Application”的形式启动插件时,脚本已执行且一切正常。 当我将插件导出为.jar文件时,我无法调用python脚本,因为它将脚本路径附加到python.exe和.jar文件的test.py中(例如“ plugin.jar / test.py”)。

// Init the processBuilder
ProcessBuilder procBuilder = new ProcessBuilder(
absolute/path/to/venv/Scripts/python.exe", // Possible workaround: "python",
absolute/path/to/test.py, 
arg1, arg2);

绝对路径的含义如下:“ C:/Users/user/path/to/project/venv/Scripts/python.exe”(通过“ virtualenv venv”创建的virtualenv)

像上面提到的那样,会发生以下错误:1)当插件应调用test.py时找不到“ C:/Users/user/eclipse/plugins/plugin.jar_100/src/utils/test.py” 2)java。 io.IOExeption:无法运行程序“ C:\\ absolute \\ path \\ eclipse \\ plugins \\ plugin_133.jar \\ venv \\ Scripts \\ python.exe”:CreateProcess错误= 2,系统找不到指定的文件。

导出的插件通常会将所有内容打包到一个jar中。 jar中的对象不是文件,您无法使用像ProcessBuilder这样需要文件的东西来访问它们。

您可以包括

Eclipse-BundleShape: dir

在MANIFEST.MF中将该插件构建为目录而不是jar。 内容将是普通文件。

如果该插件包含在“功能”中,则“安装后解压缩插件档案”选项将覆盖manifest.mf设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM