cx_Freeze 和 Python 3.3

Posted

技术标签:

【中文标题】cx_Freeze 和 Python 3.3【英文标题】:cx_Freeze and Python 3.3 【发布时间】:2013-05-25 21:03:42 【问题描述】:

所以,我有一些 Python 3.3 代码需要在 Windows 上创建一个 .exe。我发现唯一的方法是使用 cx_Freeze。但是,我什至没有比安装更进一步。这个问题完美地描述了我的问题(除了我运行 Python 3.3),还没有得到回答:

installing/using cx_freeze

当我尝试从 cmd 运行“python setup.py build”时,我得到:

"importerror: no module named cx_freeze" 

我无法通过这一步,并且已经搜索了一个小时没有成功的解决方案。

如果相关的 Python 安装在 C:\Python33。我安装的 Python 和 cx_Freeze 都是 64 位版本。我安装的 cx_Freeze 版本是:cx_Freeze-4.3.1.win-amd64-py3.3。我尝试重新安装。当我在 IDLE 中执行“import cx_Freeze”时,它不会显示任何错误。

还请注意我是编程初学者。

【问题讨论】:

【参考方案1】:

问题的答案在我的另一个答案中。请确保您先阅读它,因为这会扩展它。

好的,经过几个小时的痛苦之后,我让我的游戏在没有安装 Python 的人的计算机上以 .exe 的形式运行,这是我的目标!如果有人需要知道,我正在使用 Pygame 制作游戏。

所以,这就是我在我给出的另一个答案中的步骤之后所做的事情:

这是我使用的 setup.py:

from cx_Freeze import setup, Executable

includefiles = ['add_all_your_files_here, example.png, example.mp3']
includes = []
excludes = []
packages = []

setup(
    name = 'yourgame',
    version = '1.0.0',
    description = '',
    author = 'John Doe',
    author_email = 'johndoe@gmail.com',
    options = 'build_exe': 'excludes':excludes,'packages':packages,'include_files':includefiles, 
    executables = [Executable('yourgame.py')]
)

请注意,我不知道(也不想打扰)如何包含来自其他文件夹的文件,因此我将它们放在 setup.py 所在的位置。我尝试放置相对路径,但似乎我应该放置绝对路径。

要注意丢失了哪些文件,我必须从 cmd 运行 exe,这样当它崩溃时,我可以读取错误是什么。当我从 Windows 打开 .exe 时,这是不可能的,因为窗口关闭得太快了。

除了我的代码需要的文件之外,它还需要一些其他的 .py 文件。即:

re.py
sre_compile.py
sre_constants.py
sre_parse.py

我将它们从 python (c:\Python33\Lib) 复制到我的游戏文件夹中。

然后 .exe 能够在我和另一台没有安装 python 的计算机上运行我的游戏而没有问题(例如,没有字体问题,我听说有些人有)。

我在两天内花了 9 个小时来弄清楚这一切。希望对其他初学者有所帮助。

【讨论】:

如果您告诉它使用 Win32GUI 基础,您可以很快解决控制台关闭的问题 - 请参阅示例 here。 需要 re & sre 文件是 cx_Freeze 中的一个错误 - 它应该在下一个版本中修复。感谢您坚持解决您的问题! 您,先生,是有史以来最伟大的天才。我一直在寻找大约 2 周的时间来解决我的问题,我无法将 cx_freeze 与模块一起使用,但你提供了帮助,幸运的是我找到了这个网站,我投票赞成这个答案。 :)【参考方案2】:

你需要让python成为一个cmd命令。

    右键单击窗口按钮 点击系统 点击“高级系统设置” 点击“环境变量” 在“系统变量”部分下,单击“路径”变量 突出显示后,单击编辑。 输入新路径(例如:C:\Python34>)并点击“确定”

我希望这会有所帮助。 Orrrr... 你用一点 f 输入了 cx_Freeze。 哦,我刚刚注意到你找到了答案。

【讨论】:

以上是关于cx_Freeze 和 Python 3.3的主要内容,如果未能解决你的问题,请参考以下文章

PySide (1.1.2), cx_freeze, WinXP, Python 3.3: ImportError: DLL load failed

为啥我不能在 cx_Freeze 中创建线程池?

python3怎么打包成exe

cx_freeze QtWebKit 导入错误

使用 cx_freeze 为 tkinter 接口创建 .exe 文件

使用 cx_Freeze 构建可执行文件时出错:IndexError: tuple index out of range