将python编译为单个.exe,为什么这么困难?

将python编译为单个.exe,为什么这么困难?,python,python-3.x,compilation,pygame,py2exe,Python,Python 3.x,Compilation,Pygame,Py2exe,我对编程很陌生。我最近用python和pygame制作了一个简单的蛇游戏。当然,我可以通过运行.py脚本轻松地玩游戏,但为了与不太懂电脑的朋友分享,我继续尝试找出如何将我的代码编译成单个.exe,让他们更容易 我尝试过py2exe和cx_Freeze,它们都为我提供了一个dist或build目录,其中包含一个.exe和几个其他文件(依赖项)。这确实有效,因为我可以压缩整个文件夹并通过.zip分发,但这并不理想。我希望能够将所有内容打包到一个文件中 所以我开始在谷歌上搜索“如何将python编译成

我对编程很陌生。我最近用python和pygame制作了一个简单的蛇游戏。当然,我可以通过运行.py脚本轻松地玩游戏,但为了与不太懂电脑的朋友分享,我继续尝试找出如何将我的代码编译成单个.exe,让他们更容易

我尝试过py2exe和cx_Freeze,它们都为我提供了一个dist或build目录,其中包含一个.exe和几个其他文件(依赖项)。这确实有效,因为我可以压缩整个文件夹并通过.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梦想


还有:这到底为什么这么难?

这个问题已经在这里得到了回答:

PyInstaller将创建一个没有依赖项的.exe文件;使用--onefileoption。正如您所描述的,它通过将所有需要的共享lib打包到可执行文件中,并在运行之前解压缩它们来实现这一点(EDIT:py2exe也有此功能,请参见minty的答案)


你试过Nuitka吗?Python不是为了编译成.exe文件而创建的,很多人仍然不需要.exe文件,所以它仍然很复杂。顺便说一句,
py2exe
(以及类似的)创建了扩展名为.exe的自解压.zip文件,而不是真正的.exe文件(就像C/C++编译器那样)。是的,这些是我以前尝试过的答案。用户Minty的答案实际上是我当前的“解决方案”,正如我的问题(我使用的是相同的代码!)