py2exe安装使用

py2exe安装使用一 简介 py2exe 是一个将 python 脚本转换成 windows 上的可独立执行的可执行程序 exe 的工具 这样 你就可以不用装 python 而在 windows 系统上运行这个可执行程序 py2exe 已经被用于创建 wxPython Tkinter Pmw PyGTK pygame win32comclie 和 server 和其它的独立程序 py2exe 是发布在开源许可证下的 目前只有 py

一、简介

二、安装py2exe

方式一:

而我直接使用pip install py2exe ,而我使用的Python版本是3.6,这在后续打包的过程中,出现问题,即执行:python mysetup.py py2exe

py2exe安装使用

经查阅,版本不兼容:

The failure you’re seeing occurs in py2exe opcode parsing code, which, given the most recent posted version of py2exe only claims support for 3.3 and 3.4, could not possibly have knowledge of, or support for, the new wordcode opcodes; they hadn’t even been conceived of at the time py2exe was last updated. The bytecode often changes in small ways from version to version that could break even Python 3.5 (given only 3.3 and 3.4 support is claimed explicitly), but 3.6 is 100% guaranteed to fail.存在版本不适用性,

 但是对于其他版本应该没有什么问题,如果想用py2exe的朋友,可以尝试其他的版本

方法二

 python3.6不行,所以就选择用python2.7,结果告知需要3.3及以上版本,我安装了2.73.6,很巧都不合适,

py2exe安装使用

解决办法:下载 https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/exe程序直接双击运行即可。注意安装过程中的路径。

三、py2exe的用法

1

2

3

4

5

# mysetup.py

from distutils.core import setup

import py2exe

 

setup(console=["helloworld.py"])

python mysetup.py py2exe

默认情况下,py2exe在目录dist下创建以下这些必须的文件:

  1. 一个或多个exe文件。
  2. python.dll。
  3. 几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。
  4. 一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo

上面的mysetup.py创建了一个控制台的helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=[“helloworld.py”]替换为windows=[“myscript.py”]既可。

主要注意的是,setup(console=[“helloworld.py”])还是setup(windows=[“helloworld.py”]),区别在于,console是控制台程序,如果你的程序有图形化界面,使用windows。如果你的项目有多个py文件,只写入口py文件名即可。如果你的程序依赖除py文件之外其他类型的文件,如配置文件config.ini,txt文件,图标等,需要在setup中指定,打包程序会复制到打包的目录下,如果没有图形化界面而用Windows,执行.exe文件时会报错:

py2exe安装使用

python mysetup.py py2exe --help

 

四、指定额外的文件

# mysetup.py

from distutils.coreimport setup

import glob

import py2exe

 

setup(    console=["helloworld.py"],

             data_files=[ ( "bitmaps", ["bm/large.gif","bm/small.gif"] ),

                               ("fonts", glob.glob( "fonts\\*.fnt" ) )

                            ], )

 

说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

五、Windows NT services

# mysetup.py

from distutils.coreimport setup

import py2exe

 

setup(service=["MyService"])

 

所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。

六、COM servers

# mysetup.py

from distutils.coreimport setup

import py2exe

 

setup(com_server=["win32com.server.interp"])

 

默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

 

 

 

另:一个标准的setup.py的代码如下:

#!/usr/bin/python

#filename:setup.py

#coding=utf-8

 

from distutils.coreimport setup

import py2exe

 

 

includes= ["encodings","encodings.*"]

#要包含的其它库文件

 

options= {
"py2exe":

                                 "compressed":1,#压缩

                                     "optimize":2,

                                     "ascii":1,

                                     "includes":includes,

                                     "bundle_files":1 #所有文件打包成一个exe文件 }

}

 

setup(

              version= "XXX",

              description= "XXX",

              name= "XXX",

              options= options,

              zipfile=None,#不生成library.zip文件

              console=[ { "script":"hello.py",

                               "icon_resources": [(1,"hello.ico")] } ]#源文件,程序图标

)

翻译:https://blog.csdn.net/qw_xingzhe/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203198.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:21
下一篇 2026年3月19日 下午10:21


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号