py2exe打包的wxPython应用程序抱怨神秘DLL

2024-10-02 02:40:08 发布

您现在位置:Python中文网/ 问答频道 /正文

当我用最基本的“配置”将一个最小的Python 2.7.1/Wxpython程序(hello World)与^ {CD1>}打包并运行在一个原始的Windows 7 x32虚拟机上时,保存“微软Visual C++ 2008可重分发程序包(x86)”,我得到了无用的错误:

Z:\>z:\wxhello\wxhello.exe
Traceback (most recent call last):
  File "wxhello.py", line 1, in <module>
  File "wx\__init__.pyc", line 45, in <module>
  File "wx\_core.pyc", line 4, in <module>
  File "wx\_core_.pyc", line 12, in <module>
  File "wx\_core_.pyc", line 10, in __load
ImportError: DLL load failed: The system cannot find the file specified.

运行py2exe结束时列出的所有dll都存在于目标VM上,保存为gdiplus.dll,这是我手动复制到dist路径中的一些wxPython库。在

文本和Tkinter“Hello World's”都很好。在

怎么了?我能得到一些更有用的调试信息吗?在


使用cx_Freeze的相同过程会产生稍微不同的错误:

^{pr2}$

更新:

cx_Freeze生成的程序无法运行的问题是通过在本地驱动器上运行而不是在网络共享上运行来解决的。我没有测试这是否也修复了py2exe“二进制文件”。在


Tags: incore程序world错误lineloadfile
3条回答

您可以使用http://www.dependencywalker.com/找出缺少哪个DLL并手动添加它。在

使用cx_Freeze并快乐

环境:

OS: Windows-XP-5.1.2600-SP3
Python: 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)]
wxPython: 2.8.12.1 (msw-unicode)
cx_Freeze: 4.2.3

资料来源:

^{pr2}$

命令:

c:\Python27\Scripts\cxfreeze.bat hellowx.py

运行时不会出错,并在dist目录输出中生成以下文件:

bz2.pyd
gdiplus.dll
hellowx.exe
python27.dll
unicodedata.pyd
wx._controls_.pyd
wx._core_.pyd
wx._gdi_.pyd
wx._misc_.pyd
wx._windows_.pyd
wxbase28uh_net_vc.dll
wxbase28uh_vc.dll
wxmsw28uh_adv_vc.dll
wxmsw28uh_core_vc.dll
wxmsw28uh_html_vc.dll

这在Windows 7 Ultimate, Version 6.1, Build 7600虚拟机上运行没有问题。在

我希望这有助于你识别任何问题,你可能有你的安装或丢失的DLL。在

相关问题 更多 >

    热门问题