如何在 Ubuntu 上使用 PyInstaller 创建 Windows 可执行文件?

如何在 Ubuntu 上使用 PyInstaller 创建 Windows 可执行文件?

我使用 pygame 创建了一个游戏,我想将其导出到一个.exe文件中。我为此使用了 pyinstaller,因为它适用于 Ubuntu。当我运行 时--onefile game,它运行得很好(在我的 ubuntu 电脑上)。但是,当我将它发送给使用 Windows 的朋友时,它不是 Windows 可执行文件,而只是一个没有任何扩展名的“文件”。他无法运行它。重命名它Game.exe也没有用。

我没有主意了...有人可以帮忙吗?

答案1

显然,PyInstaller 在 Linux 上生成的二进制可执行文件只能在 Linux 上运行,而不能在 Windows 等其他操作系统上运行。文件扩展名在这里无关紧要。

根据PyInstall 常见问题解答您也不能使用它来为不同的平台进行交叉编译,但是在 Wine 中运行 PyInstall 应该可以实现您想要的效果:

  1. 我可以使用 PyInstaller 作为交叉编译器吗?
    1. 我可以在 Linux 下运行时打包 Windows 二进制文件吗?

      不,不支持。请使用葡萄酒为此,PyInstaller 在 Wine 中运行良好。你可能还想看看邮件列表中的此主题。在 1.4 版中,我们对此进行了一些支持,但结果显示只起到了一半的作用。它需要另一个分区上的 Windows 系统,并且只适用于纯 Python 程序。只要你想要一个像样的 GUI(gtk、qt、wx),你就需要安装 Windows 库。所以很多更容易使用 Wine。

据我了解,您需要在 Wine 环境中安装 PyInstall就像在 Windows 中一样然后像在原生 Windows 系统上一样使用它。请参阅如何安装 Windows 软件或游戏?了解如何在 Ubuntu 上开始使用 Wine。

答案2

你可以试试Python 打包程序

git 主页给出指令(python 2.7):

wget "http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi" 
wget "http://nchc.dl.sourceforge.net/project/pywin32/pywin32/Build%20218/pywin32-218.win32-py2.7.exe"
build_environment/create.sh
export WINEPREFIX=/tmp/path-outputted-from-create
wine start python-2.7.3.msi
wine pywin32-218.win32-py2.7.exe
build_environment/freeze.sh
./package sample-application/src/main.py MySampleProgram

这将构建一个单独的 wine 环境并安装 Python 2.7(如上所述)。如果您需要其他版本,请访问python 主页并下载您的版本。

您还可以关注此指令下载一个 wine-clone:

git clone https://github.com/paulfurley/python-windows-packager
./python-windows-packager/package.sh /path/to/myProject

相关内容