2012-09-26 263 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。