2012-09-26 152 views
4

我在ubuntu 12.04 32bit上创建了使用pyinstaller 2.0和python2.7的可执行文件(所以我认为python也是32位的)。Pyinstaller,如何在32位Linux上制作32位和64位.exe文件?

这是一个简单的程序在控制台(无gui),连接到TCP/IP服务器并发送帧。 它在我的Ubuntu 32bit下工作,但它不能在Windows 7 32bit和64bit上运行。 在Win32bit上它返回错误“设备未准备就绪”,并且在Win64bit上它返回“应用程序有错误的体系结构”的错误。

哪里可以导致这种情况?

这里是整个应用程序的代码(这是小)http://pastebin.com/qj96vpgK

+1

这个问题的标题说明如何为32位linux上的windows创建可执行文件。这与问题无关,这可能与低级套接字模块的可移植性有关。要测试运行您的代码而不知道计算机192.168.0.160上端口1204上预期的服务器类型是否有点困难。我得到'[错误]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机在新的WinXP安装上未能响应。 – Anthon

+0

您必须为每个系统单独构建打包应用应运行的系统。对于你的问题,目前还不清楚你是否做到了这一点,或者试图在Windows上运行Unbuntu软件包,而这些软件包肯定不会提供。 – Ber

回答

2

所以我一直在努力解决这个问题整个上午都在一个链接,我想我会后我的发现。

PyInstaller的Linux版本不能制作.exe或任何非Linux本机格式。为了制作一个Windows可执行文件,你需要使用WINE(或者至少他们say,不知道该怎么做),或者使用Windows计算机。

此外,如果您使用的Windows计算机是32位,则无法生成64位二进制文​​件。如果您安装了64位Windows,它可以轻松制作64位二进制文​​件,但为了制作32位二进制文​​件,您需要安装32位版本的Python(以及所有必需的程序库)。

因此,为了制作一个简单的程序来更新带有32位和64位二进制文​​件的LCD,我需要编写代码,将它复制到Windows 64位操作系统,安装32位和64位Python和pywin32,并使用PyInstaller使用每个不同的Python。