【发布时间】:2017-03-12 20:39:37
【问题描述】:
我对编程很陌生。我最近使用 python 和 pygame 做了一个简单的蛇游戏。当然,我可以通过运行 .py 脚本轻松地玩我的游戏,但是为了与我不太懂电脑的朋友分享它,我继续尝试弄清楚如何将我的代码编译成单个 .exe 来制作它对他们来说很容易。
我已经尝试过 py2exe 和 cx_Freeze,它们都给了我一个带有 .exe 和其他几个文件(依赖项)的 dist 或 build 目录。这确实有效,因为我可以压缩整个文件夹并通过 .zip 进行分发,但这不是 理想。我希望能够将它们全部包装在一个文件中。
所以我开始在谷歌上搜索“如何将 python 编译成单个 exe”。然而,与我之前尝试过的许多编程问题不同,我无法得到一个直接、可靠的答案。到目前为止,我尝试过的最新可靠答案给了我这个 setup.py 脚本:
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
windows = ['snek.py'],
zipfile = None
)
# Python 3.4.4, py2exe 0.9.2.2; modules used: pygame, random
不过,它给了我一个完整的文件夹,而不是一个 .exe,没有它程序就无法运行。
所以,我来找你,无所不知,伟大的 stackoverflow,有两个问题。
以防万一我错过了什么:你建议我如何实现我的单一 .exe 梦想?
还有:这到底为什么这么难?
【问题讨论】:
-
你试过 Nuitka 了吗?
-
Python 不是为了编译成 .exe 文件而创建的,而且很多人仍然不需要 .exe 文件,所以它仍然很复杂。顺便提一句。
py2exe(和类似的)创建扩展名为 .exe 的自解压 .zip 文件,而不是真正的 .exe 文件(就像 C/C++ 编译器一样)。
标签: python python-3.x compilation pygame py2exe