如何在处理中启动exe文件?

时间:2020-05-04 21:41:12

标签: processing

我创建了一个名为排行榜的python文件,并使用pyinstaller将其制成.exe文件。该.exe文件位于名为dist的文件夹中,该文件夹位于我的草图的数据文件夹中。我首先尝试使用launch()函数启动文件,尽管这样做没有错误,但它没有执行文件。

launch("data/dist/leaderboard.exe");

下一次尝试使用exec函数代替。

exec("data/dist/leaderboard.exe");

这给了我错误代码:尝试data / dist / leaderboard.exe时出现异常

接下来,我决定在使用启动功能时使用完整的文件路径。

launch("C:/Users/Tahseen/Documents/cs corsework 2/Bloodlust/data/dist/leaderboard.exe");

这会导致重复弹出,标题为“致命错误”,标题为“无法执行脚本排行榜”。使用exec()也给了我这个结果。

研究后,我发现一种对少数人有用的解决方案是使用双\而不是单个/,但这对我没有任何帮助。

我确认从文件夹内手动打开文件后,文件可以正常执行,因此我认为问题出在我的代码内。

更新:我认为在前两种情况下无法找到文件Leaderboard.exe,但是我不知道为什么当我在括号中放入随机字符串时会发生同样的事情。这就引出了我的第二个问题:是否可以从项目文件夹中执行文件,即没有整个文件路径?

1 个答案:

答案 0 :(得分:0)

感谢@George Profenza,我意识到问题在于python文件需要外部文本文件才能运行。虽然我无法找到一种方法来引用要用于该进程的目录,但我发现可以使用客户端和服务器来代替使用文本文件在处理和python之间发送数据。我通过导入processing.net和套接字在处理项目上创建了服务器,并在python文件上创建了客户端。至于在不手动输入完整文件路径的情况下启动exe文件,我使用dataPath(“”)返回数据文件夹的路径,然后将“ /dist/leaderboard.exe”添加到结果字符串中。这样,在导出应用程序时程序仍然可以工作。

String path = dataPath("");
launch(path+"/dist/leaderboard.exe");