如何使用cx_Freeze打包编译python文件

1. 安装 cx_Freeze

首先,确保你已经安装了 cx_Freeze。你可以通过 pip 安装它:

pip install cx_Freeze

2.创建setup.py

from cx_Freeze import setup, Executable
import os# 确定包的文件和依赖
build_exe_options = {"packages": ["os"],"include_files": [(os.path.join("Config", "device.json"), "Config/device.json"),(os.path.join("Config", "vendor.json"), "Config/vendor.json"),(os.path.join("input", "Common.xlsx"), "input/Common.xlsx"),# 其他需要打包的文件和文件夹("TestCases", "TestCases"),("TestLog", "TestLog"),("UI", "UI"),("utils", "utils"),# 加入其他文件夹的路径,确保将其添加到你的环境中],
}setup(name="TestTool",version="0.1",description="TestTool",options={"build_exe": build_exe_options},executables=[Executable("main.py")],  #  这里是你的运行程序的代码的py文件
)

3. 打包应用程序

在终端或命令提示符中,导航到包含 setup.py 的目录,然后运行以下命令:

python setup.py build

看到如下打印即可,执行此命令后,cx_Freeze 将会创建一个名为 build 的目录,包含你打包后的应用程序。

在这里插入图片描述

4. 运行你的应用程序

在 build 目录中,你可以找到打包后的应用程序文件。根据平台的不同,执行程序的方式略有不同:

在 Windows 中,找到可执行文件(.exe),双击运行。
在 Linux 中,找到可执行的文件,使用命令行执行它。
在这里插入图片描述

使用 cx_Freeze 编译 Python 程序后,生成的 lib 目录通常包含以下几个方面的内容:

Python 标准库:包含 Python 运行所需的标准库模块,例如 os、sys、re 等。

第三方库:如果你的应用程序依赖于第三方库(例如 numpy、pandas 等),这些库也会被包含在 lib 目录中。

解释器相关文件:包括 Python 解释器的动态链接库或共享库文件(如 pythonXY.dll 或 libpythonXY.so,其中
XY 是 Python 的版本号)。

其他依赖文件:某些库可能还会包含额外的共享资源、C 扩展文件(.pyd 或 .so 文件),以及其他运行时所需的文件。

5. 其他配置(可选)

图标:你可以在 Executable 中添加图标支持,像这样:

Executable("main.py", base="Win32GUI", icon="your_icon.ico")

6. cx_Freeze 和pyinstaller的区别

6.1. 目的和功能

cx_Freeze:

主要用于创建跨平台的可执行文件。
支持从 Python 代码生成可执行文件,同时支持多种平台(Windows、macOS、Linux)。
更加灵活,适合需要细致控制打包流程的高级用户。
PyInstaller:

也是用于将 Python 程序打包成独立的可执行文件。
支持多平台,简单易用,适合快速打包和分发应用程序。
支持许多第三方库,特别是 GUI 工具包。

6.2. 配置文件

cx_Freeze:

使用 setup.py 文件进行配置,类似于标准 Python 的打包方式。
需要用户定义一些细节,例如要打包的文件、数据等。
PyInstaller:

可以使用简单的命令行参数快速生成可执行文件。
提供 .spec 文件,可以自定义打包过程的各个方面,但通常不需要直接编辑。

6.3. 依赖处理

cx_Freeze:
依赖处理相对手动,可能需要用户手动指定某些库和文件。
PyInstaller:
自动分析依赖性,通常能自动检测并包含所需的库和文件。
对于一些复杂的项目,可能需要进一步手动调整。

6.4. 用户社区

cx_Freeze 和 PyInstaller 都有活跃的用户社区,但 PyInstaller 的用户社区较大,文档和支持资源更为丰富。这使得遇到问题时,更容易找到解决方案。

6.5. 大小和性能

cx_Freeze:
生成的可执行文件一般比较小,因为它允许更细粒度的控制。
PyInstaller:
由于其自动打包特性,生成的可执行文件通常比较大,但方便于使用和分发。

结论

选择使用 cx_Freeze 还是 PyInstaller 主要取决于具体需求。如果你需要快速、简单的打包过程,PyInstaller 可能是更好的选择。如果你需要更灵活的打包配置和控制,特别是在处理较复杂的项目时,cx_Freeze 可能更合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15543.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习之其他常见的生成式模型

1.1 什么是自回归模型:pixelRNN与pixelCNN? ​ 自回归模型通过对图像数据的概率分布 p d a t a ( x ) p_{data}(x) pdata​(x)进行显式建模,并利用极大似然估计优化模型。具体如下: p d a t a ( x ) ∏ i 1 n p ( x i ∣ x 1 …

短期电力负荷(论文复现)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

DBeaver如何设置自动刷新数据库表的数据,彻底解放双手!

前言 大家好,我是小徐啊。 DBeaver是一款常用的数据库连接工具,它的优点是免费使用,而且支持的数据库类型超级多,甚至可以直接安装数据库对应的驱动jar包来连接数据库。 比如达梦数据库,之前版本是可以通过jar包方式…

黄仁勋:AI革命将创百万亿美元价值!近屿智能带你入局AIGC

11月13日,NVIDIA在日本成功举办了2024年AI峰会。一场关于人工智能驱动的新工业革命的讨论热烈展开。英伟达创始人兼CEO黄仁勋与软银主席兼CEO孙正义共同探讨了当前技术革命的独特之处及其深远影响。 黄仁勋在会上表示,AI革命将创造的价值不是以万亿美元计…

知网翻译助手及其10款翻译工具使用体验大PK!!!

在这个信息爆炸的时代,翻译工具成了我们日常工作中不可或缺的得力助手。作为一个经常需要处理多语言文件的人,翻译工具对我来说简直是救命稻草。除了知网助手外,我还用过不少翻译软件,现在,我就来说说知网翻译助手和其…

Entity Framework的简单使用案例

需要引入的框架: 实体类: [Table("Users")] internal class User {[Key]public int Id { get; set; }[Required][StringLength(100)][Index(IsUnique true)]public string Username { get; set; }[Required][StringLength(100)]public strin…

Scroll 生态全面启动为 Pencils Protocol 赋能,DAPP 将迎强势腾飞

​Pencils Protocol 是 Scroll 生态最大的综合性 DeFi 平台,随着 DAPP 通证面向市场,Pencils Protocol 生态经济体系也将迎来全面运转。目前,DAPP 通证已经陆续上线了 Gate、Kucoin、Bitget、Coinone 等主流交易市场,全球用户能够…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-23

文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么&#xff…

CPLD架构

1. 通用CPLD构架 传统的CPLD内部构架布局如图1-1所示,可编程互连阵列(PIA)在芯片中心位置,而逻辑阵列块则在芯片四周靠近I/O模块。目前大多数的CPLD都是采用这种结构,包括Xilinx主流的CoolRunner系列和Altera MAX 300…

2024第十四届新华三杯预赛考试大纲

本文档取自新华三杯官方网站

类与对象

类: class默认私有,struct默认公有 面向对象的三大特性: 封装、继承、多态 封装:本质是一种管控;C数据和方法都放在类里面,使用访问限定符对成员限制 类的存储: 每个对象只存成员变量&#…

elf文件简单介绍

文章目录 elf 程序示意图ELF文件格式概述ELF的组成结构1. ELF头部(ELF Header)2. 程序头表(Program Header Table)与程序头项(Program Header Entry)3. 节区头表(Section Header Table&#xff…

【python系列】开篇:自学python的方法

1.前言 唯有自学才是最高效最省钱的学习编程的方法。最高效是因为你可以按照自己的节奏来进行学习,随时随地随心的学习,最主要的是掌握学习方法,当然培训老师是不会告诉你方法的,总是跟着培训老师在盲人摸象。最省钱是不用投入资…

【论文复现】交通路口智能监测平台实现

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀交通路口智能监测平台实现 1.概述2.工程文件简介2.1 工程文件结构2.2 训练检测模型2.2.1 准备数据集2.2.2 训练自己的权重文件2.2.3 使用自己…

不宽的宽字符

根据提示&#xff0c;通过nc 202.38.93.141 14202来进行连接&#xff0c;可以用自己的机器进行连接&#xff0c;也可以直接点击“打开/下载题目”连接&#xff1a; 意料之中的无法打开flag&#xff0c;看来得下载附件看看源码了 #include <iostream> #include <fstrea…

无脑使用matlab运行YOLOv5模型,实现目标检测

文章目录 前言代码报错解决方法缺点总结 前言 YOLO 是一种经典的一阶段目标检测算法&#xff0c;它将检测问题转化为回归问题。与 Faster R-CNN 不同&#xff0c;YOLO 不是提取 RoI,而是直接通过回归的方法生成每个类的边界框坐标和概率。与 Faster R-CNN相比&#xff0c;大大…

java ssm 高校固定资产管理系统 高校物资管理 资产信息 源码 jsp

一、项目简介 本项目是一套基于SSM的高校固定资产管理系统&#xff0c;主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本、软件工具等。 项目都经过严格调试&#xff0c;确保可以运行&#xff01; 二、技术实现 ​后端技术&am…

《战国王朝》青铜材料具体作用介绍

《战国王朝》中的青铜材料是游戏里非常重要的金属材料&#xff0c;而青铜材料的具体作用就是青铜用于制作第三层次的工具和武器;它比铜制的更好&#xff0c;但不如铁和钢制的&#xff0c;相比石制和铜制工具&#xff0c;青铜物品的使用寿命更长。 战国王朝青铜材料有什么用 青…

unity3d————延时函数

1.public void InvokeRepeating(string methodName, float time, float repeatRate); 延迟重复执行函数 InvokeRepeating 参数一&#xff1a;函数名字符串 参数二&#xff1a;第一次执行的延迟时间 参数三&#xff1a;之后每次执行的间隔时间 注意&#xff1a; 1-1.延时函数第…

焊接手电钻板子后总结

复用旧工程部分方案注意事项&#xff1a; 粘贴暑假时候做的工程原理图&#xff0c;复制到现在的项目中竟然忘记修改3V3的名称&#xff0c;导致3V3MCU与3V3的区别&#xff0c;这个错误以后一定要注意&#xff1a; 现在工程中的供电3V3&#xff0c;不是3V3MCU: 焊接QFN芯片&…