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 为 tkinter 接口创建 .exe 文件
使用 cx_Freeze 构建可执行文件时出错:IndexError: tuple index out of range