使用py2exe的简单指南

这里有一些演练,可以使PY2EXE启动并运行。我不是专家,所以我无法解决您可能遇到的任何问题。这对我有用。
这里的结果将是将一个简单的Python应用程序转换为可以在任何Windows XP机器上复制并运行的单个.exe文件。它可能在许多其他Windows平台上都可以使用,但是我尚未对其进行测试。
您将首先需要一个工作的Python安装,最好是v2.3或更高版本。如果您尚未安装PY2EXE,或者您有问题,但我建议您从可用于这些版本的PY2EXE自动安装文件之一开始,这将所有内容都置于需要的位置。如果您出于某种原因需要使用.zip(较旧的python等),那么我无济于事,因为那是我最初的困难。
您可以在
此SourceForge链接
。单击下载链接,然后从与您的Python安装匹配的列表中选择包装。
最后,在某个地方创建一个新的目录来存储以下文件,以便它们可以保持在一起,直到您舒适地操纵它们为止。
让我们从基本的Hello World应用程序开始:

选择 | 换行 | 行号
  1. #!/usr/bin/env python
  2. for i in xrange(10000):
  3.     print "Hello, World!"

使用您喜欢的编辑器并将其保存为
helloworld.py

通过双击它来运行它以确保其工作原理,即正确设置了Python路径,依此类推。
现在,再次使用您选择的编辑器创建Python设置应用程序,并将其保存为
setup.py

选择 | 换行 | 行号
  1. #!/usr/bin/env python
  2. from distutils.core import setup
  3. import py2exe
  4.  
  5. setup(
  6.     console=["HelloWorld.py"],
  7.     zipfile=None
  8.      )

我喜欢使用批处理文件来运行所有内容,因为我讨厌尝试协调CMD Shell和我的其他工作目录之间的目录。在您的编辑器中键入此内容:

选择 | 换行 | 行号
  1. python setup.py py2exe --bundle 1

并将其保存为
setup.bat

此时,您应该有三个文件:helloworld.py,setup.py和setup.bat
相同的
目录。
双击setup.bat并观看烟火。根据您的硬件,可能需要几秒钟到一分钟才能完成。
当CMD窗口关闭时,请检查存储三个文件的目录。您应该看到两个新目录。这
建造
目录只是设置使用的tempfiles,并且可以删除。这

目录包含圣杯,
helloworld.exe
,加上您不需要的其他几个文件(PY2EXE还不是完美的)。
打开区,双击Helloworld.exe,您正在做生意。将helloworld.exe复制到另一台计算机(没有python),然后在那里运行。瞧。
一些注释:
PY2EXE刚刚将您的4K .PY文件转换为3.23MB .exe文件,因为它捆绑了Python解释器,任何必需的DLL(在这种情况下为几个)(在这种情况下很少或无需),以及任何引用的库(相同)(相同),然后它'对于您创建的每个.exe,都会这样做。
我在setup.py和setup.bat中提供的特定选项会导致py2exe创建一个文件可执行文件。默认情况下,它在DIST目录中创建多个文件,所有这些文件必须将所有这些文件复制到另一台计算机以确保其执行。有原因原因可能是理想的,b UT他们在这一点上无法触及讨论。
访问
www.py2exe.org
探索其他选项。
干杯,
- 标记

# 回答1


这太好了,我不得不将其重新回到公开状态。
# 回答2


我已经在这两个"编译器"工具中都发现了缺陷。
我非常熟悉的一个应用程序是预算计算器,我尝试了几次新语言。 (还记得我寻找印刷功能的时候吗?)
我在"现在"下定居的版本使用ReportLab预览PDF,然后如果需要,它是一个按钮的打印。这些工具(py2exe或pyinstaller)都无法正确拾取并重新分配报告单元依赖项,而且其中一个甚至都不会运行该程序的主体 - 生产Drwatson或类似的弹出式框 - 对不起,对此感到抱歉。不便。' :)
因此,我都为Pyinstaller(当然是一个.exe)撰写前端而感到震惊,但是当这些问题开始时,我的动力会降低了一点。
# 回答3


我使用了很多第三方软件包。 Numpy和Scipy给出了特殊的麻烦。纠正这些依赖关系后,我也收到一个应用程序崩溃了消息。这很烦人,但我会继续努力。
# 回答4


我正在解决问题。我已经改编了一个非常酷的脚本,该脚本可以通过将参数附加到sys.argv(如果模块没有参数而没有参数)来完成不包括TKINTER模块并调用PY2EXE的所有操作。我已经发布了整个脚本
这里
在Python代码论坛中。

标签: python

评论已关闭