2010-03-19 66 views
1

我想通过在Windows Vista上使用PyInstaller编译一个非常简单的wxPython脚本到可执行文件。从PyInstaller与wxPython崩溃产生的.exe

Python脚本不过是wxPython中的Hello World。我试图在添加程序需要的任何功能之前,将它作为Windows可执行文件运行。但我已经卡住了。我已经跳过了一些循环MSVCR90.DLL,MSVCP90.DLL和MSVCPM90.DLL,我最终从我的Visual Studio安装复制(C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ 90 \ REDIST \ 86 \ Microsoft.VC90.CRT)。根据对PyInstaller说明

至于,我跑:

Command: 
Configure.py 

Output: 
I: computing EXE_dependencies 
I: Finding TCL/TK... 
I: could not find TCL/TK 
I: testing for Zlib... 
I: ... Zlib available 
I: Testing for ability to set icons, version resources... 
I: ... resource update available 
I: Testing for Unicode support... 
I: ... Unicode available 
I: testing for UPX... 
I: ...UPX available 
I: computing PYZ dependencies... 

到目前为止,一切都很好。我继续。

Command: 
Makespec.py -F guitest.py 

Output: 
wrote C:\Code\PromoUSB\guitest.spec 
now run Build.py to build the executable 

然后是最后的命令。

Command: 
Build.py guitest.spec 

Output: 
checking Analysis 
building Analysis because out0.toc non existent 
running Analysis out0.toc 
Analyzing: C:\Python26\pyinstaller-1.3\support\_mountzlib.py 
Analyzing: C:\Python26\pyinstaller-1.3\support\useUnicode.py 
Analyzing: guitest.py 
Warnings written to C:\Code\PromoUSB\warnguitest.txt 
checking PYZ 
rebuilding out1.toc because out1.pyz is missing 
building PYZ out1.toc 
checking PKG 
rebuilding out3.toc because out3.pkg is missing 
building PKG out3.pkg 
checking ELFEXE 
rebuilding out2.toc because guitest.exe missing 
building ELFEXE out2.toc 

我得到所产生的“guitest.exe”文件,但在执行时,它“只是崩溃” ......并没有调试信息。它只是那些标准的Windows Vista崩溃之一。

脚本本身,guitest.py本身运行得很好。它只是作为一个可执行文件崩溃,我完全失去了。我甚至不知道该找什么,因为我试过的东西都没有返回任何相关的结果。

另一个文件是由于编译过程而产生的,名为'warnguitest.txt'。这里是它的内容。


W: no module named posix (conditional import by os) 
W: no module named optik.__all__ (top-level import by optparse) 
W: no module named readline (delayed, conditional import by cmd) 
W: no module named readline (delayed import by pdb) 
W: no module named pwd (delayed, conditional import by posixpath) 
W: no module named org (top-level import by pickle) 
W: no module named posix (delayed, conditional import by iu) 
W: no module named fcntl (conditional import by subprocess) 
W: no module named org (top-level import by copy) 
W: no module named _emx_link (conditional import by os) 
W: no module named optik.__version__ (top-level import by optparse) 
W: no module named fcntl (top-level import by tempfile) 
W: __all__ is built strangely at line 0 - collections (C:\Python26\lib\collections.pyc) 
W: delayed exec statement detected at line 0 - collections (C:\Python26\lib\collections.pyc) 
W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) 
W: delayed exec statement detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) 
W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) 
W: delayed __import__ hack detected at line 0 - encodings (C:\Python26\lib\encodings\__init__.pyc) 
W: __all__ is built strangely at line 0 - optparse (C:\Python26\pyinstaller-1.3\optparse.pyc) 
W: __all__ is built strangely at line 0 - dis (C:\Python26\lib\dis.pyc) 
W: delayed eval hack detected at line 0 - os (C:\Python26\lib\os.pyc) 
W: __all__ is built strangely at line 0 - __future__ (C:\Python26\lib\__future__.pyc) 
W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) 
W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) 
W: __all__ is built strangely at line 0 - tokenize (C:\Python26\lib\tokenize.pyc) 
W: __all__ is built strangely at line 0 - wx (C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\__init__.pyc) 
W: __all__ is built strangely at line 0 - wx (C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\__init__.pyc) 
W: delayed exec statement detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) 
W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) 
W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) 
W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) 
W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) 
W: delayed conditional exec statement detected at line 0 - iu (C:\Python26\pyinstaller-1.3\iu.pyc) 
W: delayed conditional exec statement detected at line 0 - iu (C:\Python26\pyinstaller-1.3\iu.pyc) 
W: delayed eval hack detected at line 0 - gettext (C:\Python26\lib\gettext.pyc) 
W: delayed __import__ hack detected at line 0 - optik.option_parser (C:\Python26\pyinstaller-1.3\optik\option_parser.pyc) 
W: delayed conditional eval hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) 
W: delayed conditional __import__ hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) 
W: __all__ is built strangely at line 0 - optik (C:\Python26\pyinstaller-1.3\optik\__init__.pyc) 
W: delayed exec statement detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 

我不知道该做什么。再一次,我的搜索没有结果。

+0

有些偏离主题,但由于您只是在wxPython中编写了一个“hello,world”应用程序,我会放弃它并重新开始使用PyQt。文档更好,整体最终产品看起来也更好。 – 2010-03-20 01:15:11

+0

wxPython是免费的。 – 2010-03-20 15:46:26

回答

0

我在PyInstaller邮件列表中发现了这个问题的解决方案,它非常简单,只是没有记录。

PyInstaller尚不支持Python 2.6。解决方案是从一个页面中获取补丁,如果试图使用Python 2.6进行编译,那么现在可以在我尝试的编译过程中找到该补丁。

谢谢大家!

编辑:页面曾经托管在http://svn.pyinstaller.org/branches/py26win但它不再存在。

+1

你应该把链接 – thelost 2012-02-26 02:36:21

+0

啊,是的,我应该有。不过,我早已忘记了这件事。感谢提示,下次我会记得。 – Teekin 2012-02-28 13:30:08

+3

仍然有人有这些问题,会喜欢这个链接 – 2012-08-03 16:10:05

0

在windows上,我发现Py2exe更稳定,更易于使用,你有没有试过。