Python 在Windows 7 x64上使用py2exe编译时出现问题

Python 在Windows 7 x64上使用py2exe编译时出现问题,python,compilation,64-bit,py2exe,Python,Compilation,64 Bit,Py2exe,我使用py2exe将我的脚本编译成一个exe文件,在Windows上运行,但是我遇到了基于我的操作系统(Windows7x64)的错误。我正在cmd中使用execmaker.py py2exe运行以下脚本: from distutils.core import setup import py2exe includes = [] excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',

我使用py2exe将我的脚本编译成一个exe文件,在Windows上运行,但是我遇到了基于我的操作系统(Windows7x64)的错误。我正在cmd中使用
execmaker.py py2exe
运行以下脚本:

from distutils.core import setup
import py2exe

includes = []
excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
            'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
            'Tkconstants', 'Tkinter']
packages = []
dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
                'tk84.dll']

setup(
    options = {"py2exe": {"compressed": 2, 
                          "optimize": 2,
                          "includes": includes,
                          "excludes": excludes,
                          "packages": packages,
                          "dll_excludes": dll_excludes,
                          "bundle_files": 1,
                          "dist_dir": "dist",
                          "xref": False,
                          "skip_archive": False,
                          "ascii": False,
                          "custom_boot_script": '',
                         }
              },
    windows=['My_Script.py'] #this is the name of the script I'm compiling to exe
)

我正在编译到exe中的实际脚本并不重要,因为当我使用
bundle\u files:3,
编译它时,它工作得非常好,它不绑定任何文件,并在文件夹中保留~200个.pyo文件

现在让我们进入问题的中心:因为我使用的是Win7x64,所以我安装了64位版本的Python 2.7.5。当我
cd
下到存放
execmaker.py
My_Script.py
文件的文件并在cmd(
execmaker.py py2exe
)中运行它时,我会收到一条错误消息,内容如下:
错误:win64尚不支持捆绑文件1,我认为这意味着它不会捆绑文件,因为我的操作系统是64位的。我认为这可能是因为安装了64位python而造成的问题,但当我卸载它时,收到错误
DLL加载失败:%1不是有效的Win32应用程序。

DLL加载错误是由在64位Windows上运行32位python引起的。所以基本上,它不适用于32位或64位python,因为我运行的是64位Windows。是否有解决方法,或者我是否需要安装python和我在32位机器上使用的所有模块来进行编译

谢谢你的帮助,也谢谢你对我提出了这个很长的问题


编辑解决方案:我做了更多的研究,但什么也没想到。现在,除非用更有效的方法来回答这个问题,否则我想在分区或并行机上安装32位操作系统(我就是这么做的)就足够了。

我想现在对你来说已经太晚了,但在我看来,对于困在这条船上的下一个灵魂来说,更有效的方法是从oracle免费安装virtualbox(vb),然后在上面安装32位操作系统。这样,您就不必对硬盘进行分区,也可以像卸载任何其他程序一样,毫无风险地卸载vb


另一个选择是尝试使用pyinstaller。我只使用它为linux系统生成可执行文件,但我认为你也可以在windows上使用它

您的问题是py2exe是32位版本,不能在x64 windows下工作。
如果是这种情况,显然,您需要64位py2exe和sf.net。我遇到了与OP类似的问题。在64位Windows 7 Python2.7环境中捆绑py2exe的python应用程序在32位W7下运行了一段时间。2013年8月初,它仍然有效。2013年11月底,发现它因版本冲突而停止工作。我最好的猜测是,这些日期之间的Windows更新导致了更严格的版本检查

我在旧的32位Vista Python27开发机器上重新绑定了这个应用程序和Py2Exe,它在64位和32位Windows下都能正常工作

这个答案对我很有帮助:

不过,最简单的方法就是 确保您的64位Windows安装使用的是32位Python 安装。py2exe并没有真正构建任何东西;它只是一捆一捆的 您的源文件将与Python解释器同步,只要 解释器是32位的,生成的EXE应该能够在其上运行 两个站台都有

为了完整起见,以下是错误消息:

此版本的[module name]与您正在运行的Windows版本不兼容。请检查计算机的系统信息,查看您是否需要x86(32位)或x64(64位)版本的程序,然后与软件发行商联系


我还在Windows7上运行该应用程序。如果可以,请卸载Python2.7x64,重新安装Python2.7x86,最后安装py2exe。这为我解决了这个问题

有一个在线exe生成器工具(py2exe.net),它“几乎”适合我。我正在用Python 2.7编程,当我试图获得一个独立的可执行文件时,遇到了令人讨厌的windows 64问题

即使该网站提到它是为Python3.x程序构建的,我上传我的程序只是为了尝试

我的程序使用pygame调用png图像,所以我也在网站上导入了这些图像


我得到了一个几乎是独立的可执行文件:图像导入显然无法工作,因为可执行文件只能在包含图像的文件夹中工作。但是,这总比什么都没有好。

我宁愿有一个经过深思熟虑的很长的问题,而不是这里出现的其他一些糟粕(“我的400行函数有一个错误”,没有说明错误,并且发布一段完全不相关的代码)。我只希望我能帮助你:-)我很感激这种感情!我之前的大多数问题都很糟糕,所以听到这个问题可能不那么糟糕,这真是太棒了。试着运行
python execmaker.py py2exe
。我发现有时(其他python脚本的)结果在显式调用解释器和让windows的文件关联处理解释器之间有所不同。我也遇到了同样的问题,并通过在windows上重新安装32位python和32位py2exe解决了这个问题。我相信我已经在运行64位py2exe了,但可以肯定的是,我下载了那个文件并运行了它。没有解决任何问题。我仍然收到与以前相同的错误消息(与原始海报询问的相同)