python py2exe打包的exe文件会很大吗_使用py2exe打包exe

安装

py2exe已经支持到python 3.8了,而且用pip可以直接安装对应版本,很方便。

pip install p2p2exe

34bda0511d91f0a6636215d89ab67862.png

使用

简单使用

1、比如,代码文件为pytest.py

# -*- coding: utf-8 -*-

import os

import time

print(r"test------------>project home is %s" % os.getcwd())

time.sleep(30)

2、再同级目录创建一个setup.py

这个文件告诉py2exe怎么打包,打包哪个文件。pytest.py就是我们要打包的文件

# -*- coding: utf-8 -*-

from distutils.core import setup

import py2exe

#图形界面

#setup(windows=['pytest.py'])

#带cmd窗口

setup(console=['pytest.py'])

3、cmd到要打包的代码文件目录,需要先设定python的环境变量。

python setup.py py2exe

41bc8cb425e92bd53551123b40b3c47e.png

4、查看exe

在代码同级目录中会生成一个dist目录,该目录中的文件包含了你的程序所必须的东西,发布时候要将整个目录一起发布。

目录内容包括:

1、一个或多个exe文件。

2、python##.dll。

3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。

4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo

62350a05deffacc78817f5e1492cd5fe.png

我想使用的时候应该是创建个快捷方式吧,这块不比pyinstaller,直接是一个exe文件。py2exe需要设置setup文件来实现。

高级应用

1、带ico、只生成一个exe

# -*- coding: utf-8 -*-

from distutils.core import setup

import py2exe

'''

compressed #压缩

bundle_files #所有文件打包成一个exe文件

'''

options = {"py2exe":{"compressed":1,"optimize":2,"bundle_files":1}}

'''

version #版本号

description #类似于打开任务管理器后,后边的进程描述。这里自己可以定义自己的名称

name #作者

options #将所有文件打包成一个exe,如果无此代码则会在dist文件夹内生成许多依赖的文件,加上此代码则会把依赖文件都加入一个exe,发给他人使用时不

script、icon_resources #前一个参数都好理解是你的python文件名,后一个参数就是图标所依赖的资源文件,只需要给出合理的ico图标路径

'''

setup(

version='5.0',

description='uploadtool',

name='zhaobw',

options=options,

zipfile=None,

windows=[{'script':'pytest.py','icon_resources':[(1,r'E:\pycharm-project\test\favicon.ico')]}]

)

2、指定额外的文件

一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。

如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。

#setup.py

from distutils.core import setup

import glob

import py2exe

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

data_files=[("bitmaps",

["bm/large.gif", "bm/small.gif"]),

("fonts",

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

)

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

3、Windows NT services

你可以通过传递一个service关键字参数给setup函数来建造Windows NT services

,这个service参数的值必须是一个Python模块名(包含一service类)的列表。

示例如下:

# setup.py

from distutils.core import setup

import py2exe

setup(service=["MyService"])

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

4、COM servers

你可以通过传递一个com_server 关键字参数给setup函数来建造Windows NT services ,这个service参数的值必须是一个Python模块名(包含一个或多个COM server 类)的列表。

示例如下:

# mysetup.py

from distutils.core import setup

import py2exe

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值