我使用 pygame 创建了一个游戏,我想将其导出到一个.exe
文件中。我为此使用了 pyinstaller,因为它适用于 Ubuntu。当我运行 时--onefile game
,它运行得很好(在我的 ubuntu 电脑上)。但是,当我将它发送给使用 Windows 的朋友时,它不是 Windows 可执行文件,而只是一个没有任何扩展名的“文件”。他无法运行它。重命名它Game.exe
也没有用。
我没有主意了...有人可以帮忙吗?
答案1
显然,PyInstaller 在 Linux 上生成的二进制可执行文件只能在 Linux 上运行,而不能在 Windows 等其他操作系统上运行。文件扩展名在这里无关紧要。
根据PyInstall 常见问题解答您也不能使用它来为不同的平台进行交叉编译,但是在 Wine 中运行 PyInstall 应该可以实现您想要的效果:
据我了解,您需要在 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