Py2Exe:DLL加载失败

时间:2010-09-23 20:02:44

标签: python py2exe

当尝试使用py2exe将我制作的简单Python游戏转换为exe格式时,它给了我以下错误:

Traceback (most recent call last):
  File "C:\Users\Tali\Desktop\2exe.py", line 4, in <module>
    setup(console=['test.py'])
  File "C:\Python\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\Python\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 243, in run
    self._run()
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 305, in _run
    dlls = self.find_dlls(extensions)
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 389, in find_dlls

    self.dll_excludes)
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 1021, in find_dep
endend_dlls
    import py2exe_util
ImportError: DLL load failed: %1 is not a valid Win32 application.

我在网上搜索了大约一个小时,尝试在我的程序中更改内容。什么都行不通。 虽然我的程序使用“随机”库,但我没有看到它引起这种问题的情况。

安装脚本:

from distutils.core import setup
import py2exe

setup(console=['test.py'])

是的,两个脚本都在同一个文件夹(桌面)中。如果重要的话,我在使用Python 2.7的Windows Vista上运行

非常感谢你们。

9 个答案:

答案 0 :(得分:33)

我遇到了同样的问题。

由于我有Windows 7 64bit,我下载了py2exe-0.6.9.win64-py2.6.amd64.exe,我认为它是64位版本的py2exe。但它没有用,我也有同样的错误。

我改为py2exe-0.6.9.win32-py2.6.exe,它工作正常。

我猜你必须使用python安装而不是windows本身匹配32位或64位。

顺便说一句,“setup.py py2exe”或“python setup.py py2exe”确实没关系,如果你指示windows在python安装过程中用python打开* .py。

答案 1 :(得分:3)

我遇到了同样的问题,我搜索了一下,然后我来到这里。我尝试了小宇的提示,但我没有工作。所以我从http://www.py2exe.org/index.cgi/Tutorial#Step52找到了这个: 5.2.1。捆绑C运行时DLL

如果您确实有权重新分发MSVCR90.dll,则在VC \ redist \ x86 \ Microsoft.VC90.CRT下的Visual Studio安装中应该有一个副本。从Visual Studio 2008开始,您不能只复制此DLL文件 - 您还需要在那里找到的清单文件。 redist.txt文件声明您必须分发所有三个dll和未修改的清单文件,并且违反许可协议只分发其中一个dll而不使用其他dll(尽管py2exe只需要MSVCR90.dll。)相关段落来自redist.txt文件如下:-----------------------

所以,试试吧。

答案 2 :(得分:3)

似乎可以通过为您的平台和版本下载正确的py2exe安装程序来解决问题。

我也有同样的问题。我在Windows 7 64位上运行并安装了Python 2.7。我的问题与我安装py2exe-0.6.9.win32-py2.7.exe并且安装程序无法找到python的事实有关,即使它找到了安装文件夹。在这个阶段运行python setup.py py2exe给了我你看到的完全相同的错误。

然后我从this page下载了py2exe-0.6.9.win64-py2.7.amd64.exe并安装了它。安装顺利完成,python setup.py py2exe游戏了很多控制台输出,创建了build和dist文件夹以及预期的可执行文件。

答案 3 :(得分:2)

尝试安装Microsoft Visual C ++ 2008 Redistributable Package(x86): http://www.microsoft.com/downloads/en/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en

答案 4 :(得分:2)

我通过下载&#34; Microsoft Visual C ++编译器for Python 2.7&#34;解决了这个问题。 http://www.microsoft.com/en-pk/download/details.aspx?id=44266

答案 5 :(得分:0)

从您的评论中,我看到您在命令提示符下执行此操作:

setup.py py2exe 

来自py2exe tutorialthird step,你应该这样做(在命令promt中):

python setup.py py2exe

第二次看原始问题的评论表明这个建议已经提出。 +1给joaquin这个。

试图再次回答你的问题:Joaquin还提到这可能是一个路径问题。您可能想要考虑将python文件复制到C:\ Python的更简单方法,而不是尝试解决这个问题。然后在命令提示符下:

cd C:\Python
python setup.py py2exe

这一直对我有用

希望这有帮助

答案 6 :(得分:0)

你可以处理py2exe和头痛,我试过这样做,即使我说得对,它也会出错,虽然我确实找到了优秀的python程序gui2exe,这使得制作一个exe(或任何一个)非常容易其他支持的格式)。

Gui2exe:http://code.google.com/p/gui2exe/downloads/detail?name=GUI2Exe_0.5.0.zip

示例:http://code.google.com/p/gui2exe/wiki/GUI2ExeExamples

答案 7 :(得分:0)

我遇到了同样的问题,我使用的是带有py2exe-0.6.9.win64-py2.7.amd64.exe的Windows 7(64位)上的Python 2.7(32位),所以问题是我使用的是32位Python和64位py2exe。如果你不知道你使用的Python包是32位还是64位,那么从C:\Python27\Lib\idlelib\.运行idle.bat

python窗口提示符的第一行将显示python包的详细信息。

我通过运行py2exe-0.6.9.win64-py2.7.exe并安装了适用于我的"pip uninstall py2exe"来卸载py2exe-0.6.9.win64-py2.7.amd64.exe

答案 8 :(得分:0)

py2exe看起来非常过时。最新版本已发布4年(从2014年开始,今天是2018年)

主页“新闻”部分的最新条目来自2008年(十岁)。

如果您今天py2exe出现错误,我想最好使用其他工具。