2016-11-21 45 views
5

我有一个艰难的时间,克服了这个错误,我已经找遍了该错误消息,似乎没有任何有关我的情况:Windows的Pyinstaller错误“无法执行脚本”当App点击了

"failed to execute script new-app" 

新应用程序是我的Python GUI程序。当我运行pyinstaller使用这个命令:

pyinstaller.exe --onedir --hidden-import FileDialog --windowed --noupx new-app.py 

它确实工作顺利。此外,当我执行命令行运行GUI程序,它完美的作品,并使用此命令生成的GUI:

.\dist\new-app\new-app.exe 

但是,当我去到该文件希望能够点击应用得到GUI,它给了我上面说的错误。这是为什么?

我使用python2.7,操作系统是Windows 7 Enterprise。

任何输入将不胜感激,并提前感谢。

+0

@eryksun对不起,这是一个错字,我正在修复它。 – aBiologist

+0

完成修复错字! – aBiologist

回答

9

嗯,我想我已经找到了我自己的问题的解决方案,这是我如何做的:

Eventhough我能够成功运行使用Python的命令的程序以及成功运行pyinstaller并能够使用问题中提到的命令行执行应用程序“new_app.exe”,在这两种情况下显示GUI都没有任何问题。但是,只有当我单击该应用程序时,它才会允许显示GUI,并且不会生成错误。

所以,我所做的是我在pyinstaller命令中添加了一个额外的参数--debug,并删除了--windowed参数,这样我就可以看到实际发生的事情,当点击应用程序时,我发现有一个这个错误在我追踪它时很有意义,它基本上抱怨“some_image.jpg”没有这样的文件或目录

当我从第一个地方运行脚本或者甚至使用命令行“./”时,它抱怨并没有抱怨的原因是因为文件图像与脚本位于相同的路径中,但是当pyinstaller创建了具有应用产品的“dist”目录,它使得图像文件不存在,所以我基本上将它移动到那个可点击应用程序在那里的dist目录!

+0

Explorer在双击文件时将工作目录设置为打开的目标文件的工作目录。但是,您的可执行文件可以在任何工作目录下运行,并且它仍然能够查找与其相关的所有数据。通常使用'os.path.dirname(sys.argv [0])'或'os.path.dirname(sys.executable)'冻结的程序。最好使用'os.path.join'为你的数据文件创建路径,但是你也可以通过'os.chdir'改变工作目录。 – eryksun

+0

谢谢你,你值得更多的荣誉(y) –

+0

该方法有帮助。谢谢。 –