前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >py2exe打包多个py文件_Python导入包

py2exe打包多个py文件_Python导入包

作者头像
全栈程序员站长
发布于 2022-10-01 03:17:46
发布于 2022-10-01 03:17:46
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

上回在《使用 PyInstaller 打包 Python 程序》中,我们介绍了使用 PyInstaller 对 Python 程序进行打包,今天带大家认识一个新的工具:py2exe。

接下来将从这几个方面进行介绍:基本使用方法、高级参数、注意点等。

简介 & 安装

py2exe 是一个将 python 脚本转换成 Windows 上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装 python 而在 Windows 系统上运行这个可执行程序。

  • 安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install py2exe
# 或者
python -m pip install py2exe

基本用法

看一个简单的例子:先写一个简单的脚本,文件名:helloworld.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python  # -*- coding: utf-8 -*-  def say_hello(name): print("Hello, " + name) if __name__ == "__main__": name = input("What's your name:") say_hello(name) 

下面还需要个用于发布程序的设置脚本:mysetup.py,在其中的 setup 函数前插入语句 import py2exe

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from distutils.core import setup import py2exe setup(console=["helloworld.py"]) 

然后按下面的方法运行 mysetup.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python mysetup.py py2exe

运行生成的文件:

需要注意,这里需要在 Windows 环境下运行!否则可能会出现以下异常:

上面的命令执行后将产生一个名为 dist 的子目录,其中包含了 helloworld.exe、python24.dll、library.zip 等等文件:

dist 子目录中的文件包含了程序所必须的东西,你需要将该目录中的所有内容一起发布。

默认情况下,py2exe 会在 dist 下创建以下这些文件:

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

扩展

setup 优化

我们可以看到生成的 dist 目录中文件很多,那么是不是可以进行优化呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# mysetup.py # from distutils.core import setup # import py2exe # setup(console=["helloworld.py"]) # -*- encoding:utf-8 -*- from distutils.core import setup import py2exe INCLUDES = [] options = { 
 "py2exe" : { 
 "compressed" : 1, # 压缩  "optimize" : 2, "bundle_files" : 1, # 所有文件打包成一个 exe 文件  "includes" : INCLUDES, "dll_excludes" : ["MSVCR100.dll"] } } setup( options=options, description = "this is a py2exe test", zipfile=None, console = [{ 
"script":'helloworld.py'}]) 

options 可以用来指定一些编译的参数,譬如是否压缩,是否打包为一个文件等。

再次运行后,发现所有内容打包进了一个 helloworld.exe 程序中。

指定额外的文件

一些应用程序在运行时需要额外的文件,诸如配置文件、字体、图标。py2exe 并不会自动把他们打包到 dist 目录,不过可以通过配置参数来打包。

可以在安装脚本中用 data_files 可选项指定了那些额外的文件,那么 py2exe 能将这些文件拷贝到 dist 子目录中。

格式如下:data_files=[(“目的文件夹”,[“文件名”,]), (“目的文件夹”,[“文件名”,]), (“目的文件夹”,[“文件名”,]),]。

比如,我们的程序中有一个名为 images 的目录放置了程序需要的图片,

那么我们就需要在 setup 函数中配置参数 data_files,这个参数包含一个元组列表 (target_dir,files),其中 target_dir 是指定文件存放的目标路径,files 是这些额外文件的一个列表。

示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from distutils.core import setup import py2exe setup( windows = ['hello.py], data_files = [('images',['images\*.jpg'])] ) 

上面的示例中,会把 images 目录中所有的 jpg 文件打包到 dist/images 子目录中。

注意点

1、py2exe 新版本只支持 python3.3 以上,可以使用 pip install py2exe_py2 来安装兼容 python2 版本; 2、若在 python3.6 版本下运行报错,请切换到 python3.4 尝试; 3、python3 如果是 64 位,生成的 exe 只能在 64 位操作系统下运行,使用 32 位 python 可以解决;

4、从 Python 3.3,Windows 在构建 Python 时使用的是 Visual Studio 2010,因此生成后,需要手动将 msvcr100.dll 拷到生成目录下(dist目录),否则最终的文件运行时可能会报错;

或者通过 data_files=[("",["MSVCR100.dll"])], 打包其中;

比如,我在 Win10 下打的包,拷贝到 Win7 上,运行出错:

出现类似确实 dll 文件的情况,都可以参考这种方法进行解决;

总结

对于 pyinstaller 和 py2exe 两种把 Python 文件打包成 exe 的可执行文件的方法,都有各自的优缺点。但是最终目的都是为了在没有 Python 环境下的普通 Windows 系统的电脑中可直接运行,这点还是很不错的。

大家根据自己的需要,择优选择就行了。

参考: 1、http://irootlee.com/Py2exe/ 2、https://www.jianshu.com/p/afc56b647866

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月11日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
频谱分析仪原理学习
虽是电子专业出身,但在学生期间用频谱仪的次数比较少,连使用都不顺畅更加不会想到去研究它的原理。但现在的工作主要就是检测接收机,每天和频谱仪 接收机各种设备打交道,有必要也很乐意的研究下各个设备的工作原理。
全栈程序员站长
2022/09/22
4020
频谱分析仪原理学习
使用频谱分析仪测量微弱信号的3个步骤有哪些_频谱仪底噪怎么看
灵敏度决定了频谱仪测量微弱信号的能力。直接决定灵敏度的指标叫做频谱仪显示平均噪声电平(DANL),也称为底噪。
全栈程序员站长
2022/09/22
1.4K0
使用频谱分析仪测量微弱信号的3个步骤有哪些_频谱仪底噪怎么看
基于MATLAB的数字信号处理(3) 用FFT对信号作频谱分析
学习用 FFT 对连续信号和时域离散信号进行频谱分析(也称谱分析)的方法, 了解可能出现的分析误差及其原因,以便正确应用FFT。
叶庭云
2021/12/01
8K0
基于MATLAB的数字信号处理(3)   用FFT对信号作频谱分析
微型实时usb频谱分析仪功能特点
usb微型实时频谱分析仪因其体积小巧方便携带广泛应用于无线电技术的各个领域,今天我们就来了解一下usb微型频谱分析仪模块的工作原理及其功能特点。
用户10682133
2025/01/25
760
安捷伦频谱仪操作手册_安捷伦频谱仪LAN设置
在使用频谱分析仪之前,有必要了解一下分贝(dB)和分贝毫瓦(dBm)的基本概念,下面作一简要介绍。
全栈程序员站长
2022/09/22
1.1K0
频谱分析仪的基本使用方法_频谱仪的功能使用
因为项目需要,今天学着使用的一下频谱分析仪,项目属于物联网类型,通信方式是使用的当前市面上比较火的Lora技术(当前市面上常用的两种低功耗远距离通信方案是LORA和NB-LOT)。本次使用频谱分析仪用来测量设计的板子用Lora发送无线数据时候的一些相关参数,主要测试天线发送数据时候的发射功率(单位:DB)。在这里对仪器的基本使用做一个记录,以为备忘。
全栈程序员站长
2022/09/22
3.4K0
频谱分析仪的基本使用方法_频谱仪的功能使用
数字信号处理频谱分析实验_声压频谱分析仪软件
当今的无线信号环境比以往任何时候都要复杂。 面对迅速的创新,新的无线信号标准以及不断增长的频率和带宽要求,研究人员必须找到新的方法来检测RF干扰,分类信号类型,测试传播模型并确保在各种环境中的覆盖范围。 他们需要一种经济高效,通用且可联网的替代方案,以替代传统的基于硬件的频谱分析设备。 为了在真实条件下进行实验并验证仿真或模型,这些频谱分析解决方案必须能够在实验室和现场中部署,并与通用实验室软件和处理工具集成在一起,以进行更深入的信号分析。
全栈程序员站长
2022/09/22
4350
数字信号处理频谱分析实验_声压频谱分析仪软件
基于Python的频谱分析(一)
1、傅里叶变换   傅里叶变换是信号领域沟通时域和频域的桥梁,在频域里可以更方便的进行一些分析。傅里叶主要针对的是平稳信号的频率特性分析,简单说就是具有一定周期性的信号,因为傅里叶变换采取的是有限取样的方式,所以对于取样长度和取样对象有着一定的要求。
py3study
2020/01/18
4.3K0
振动信号频谱分析及阶次反算转速
“在振动噪音的测试分析过程中,获得准确的转速信息是频谱分析的前提,但这不是必须的。本文主要介绍旋转机械频谱分析的一些基本概念,然后顺带利用这些特性来反算转速”
用户7573907
2020/07/21
5.2K1
振动信号频谱分析及阶次反算转速
GNU Radio FFT模块窗函数对比
GNU Radio 中 FFT 模块的窗函数包括以下几种:矩形窗(Rectangular Window)、汉明窗(Hamming Window)、汉宁窗(Hann Window)、黑曼窗(Blackman Window)、黑曼-哈里斯窗(Blackman-Harris Window)、凯泽窗(Kaiser Window)、巴特利特窗(Bartlett Window)、平顶窗(Flattop Window),本文对窗函数实现的结果做一个记录对比。
Gnep@97
2024/05/09
6060
GNU Radio FFT模块窗函数对比
FFT_频谱分析(数字信号处理)
用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重点在于频谱分辨率及分析误差。频谱分辨率D和频谱分析的点数N直接相关,其分辨率为2π/N 。因此2π/N≤D,可以据这个公式确定频率的分辨率。
Fivecc
2022/11/21
2.5K0
FFT_频谱分析(数字信号处理)
直读光谱仪分析谱线_频谱分析仪主要有哪几种
电磁频谱,是指按电磁波波长(或频率)连续排列的电磁波族,是一种看不见摸不着但时刻伴随我们的东西。当我们使用电磁波将一串信息发送出去时,在时域上他是一段强度不同,疏密变化的时间信号,在其中的任意时刻,你所能获取的只有他的强度;当我们换个角度,站在频域上来看时,在信号的每一个时刻,你都能看到他从时域的一个点延展成了频域的一个面,你所能获取到的信息量将成倍增加,这有助于我们从中解析出更丰富的内容。
全栈程序员站长
2022/09/22
4050
直读光谱仪分析谱线_频谱分析仪主要有哪几种
Oscium双频带频谱分析仪「建议收藏」
新一代Wipry 5X为频谱分析仪Wipry Combo的升级版本,主要针对2.4 & 5GHz两个频段的wifi信号进行测试,同时兼容苹果iOS和Android双系统;具有双带频谱分析功能,智能的触摸屏操作,简便快捷,口袋型轻巧的设计,对数据记录分析,随时发送E-mail功能,让你的测试测量变得随时随地,不再受时间、空间、地理位置的影响。
全栈程序员站长
2022/09/22
3130
Oscium双频带频谱分析仪「建议收藏」
音响频谱测试软件_频谱分析仪有什么用
在频域内分析信号的图示测试仪。以图形方式显示信号幅度按频率的分布,即X轴表示频率,Y轴表示信号幅度。
全栈程序员站长
2022/09/22
6520
音响频谱测试软件_频谱分析仪有什么用
测频率仪器有哪些?
常用的测频率仪器包括:电子计数器、通用计数器、频率计数器、微波计数器、时间间隔测量仪、比相仪、频标比对器、相位计、相位噪声分析仪、频谱分析仪等。
时频专家
2020/06/09
1.3K0
随机信号频谱分析用PSD的原因
“正弦信号频谱分析多用幅值谱,单位是g。随机信号频谱分析多用功率谱密度PSD (Power Spectrum Density),单位是g2/Hz。是否只是使用习惯,还是另有原因?文本将着重进行解释。”
用户7573907
2020/07/20
4.3K1
频谱分析仪怎么测频率_声音测试软件
现代高度发达的通信技术可以让人们在地球的任意地点控制频谱分析仪,因此就更要懂得不同参数设置和不同信号条件对显示结果的影响。
全栈程序员站长
2022/09/22
9620
高速PCB电路板信号完整性测试的方法有哪些?
高速PCB在现代电子设备中广泛应用,如服务器、通信设备和消费电子,信号速率的提升使得反射、串扰等问题的检测变得尤为重要。
不脱发的程序猿
2025/03/10
1670
高速PCB电路板信号完整性测试的方法有哪些?
相位噪声测试仪特点分析、相噪测量仪、相位噪声测量仪
相位噪声分析仪是一种用于测量信号相位噪声和频率稳定性的电子测量仪器124。以下是关于它的详细介绍:
时频专家
2025/01/25
870
音频分析器特点分析、国产音频分析仪、音频信号分析仪
实时监测与分析:音频分析仪能够实时对音频信号进行监测和分析,及时反馈音频信号的状态。在现场演出、广播电台等需要实时把控音频质量的场景中,这一特点尤为重要。工作人员可以根据音频分析仪实时显示的音频参数,迅速调整音频设备的设置,以保证音频信号的稳定和高质量传输。
时频专家
2025/02/05
1520
推荐阅读
相关推荐
频谱分析仪原理学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档