ython 使用 cx_Freeze 打包,不想要打包文件中能直接看到依赖的代码,如何处理

背景:因为使用 cx_Freeze 打包时,添加需要依赖的文件

cx_Freeze 是一个用于将 Python 程序打包成独立可执行文件的工具,支持多个平台。当你需要打包包含多个 .py 文件的项目时,你可以通过编写一个 setup.py 文件来指定哪些模块应该被包含在最终的打包中,打包之后,可以看到依赖的源代码

from cx_Freeze import setup, Executable# 这里列出你的所有 .py 文件,包括主入口文件
include_files = ['main.py', 'module1.py', 'module2.py']# 设置你的可执行文件的信息
executables = [Executable('main.py', base='Win32GUI' if sys.platform == 'win32' else None),
]# 调用 setup 函数
setup(name="YourAppName",version="1.0",description="Your app description",options={"build_exe": {"packages":["os"], "include_files":include_files}},executables=executables
)

效果:
在这里插入图片描述

目的:最终的可执行文件中不直接暴露源代码,尤其是那些被导入的 .py 文件,步骤:
1.编译 .py 文件为 .pyc 文件:

python -m compileall .
#这个命令会在当前目录下生成一个 __pycache__ 目录,里面包含了编译后的 .pyc 文件。

2.在 setup.py 中指定 .pyc 文件:修改setup.py 文件,确保 cx_Freeze 包括的是 .pyc 文件而不是 .py 文件。你可以在 include_files 或 packages 参数中指定 .pyc 文件的位置。

from cx_Freeze import setup, Executablesetup(name="YourAppName",version="1.0",description="Your app description",options={"build_exe": {"include_files": ["__pycache__/helpers.pyc"]}},executables=[Executable("main.py", base="Win32GUI" if sys.platform == "win32" else None)]
)

效果:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的CountDownLatch原理使用注意事项

CountDownLatch是Java并发工具包java.util.concurrent中的一个类,主要用于解决一个或多个线程等待一组操作完成的问题。它的核心原理是基于一个内部的计数器,当计数器的值减至0时,所有因调用await()方法而阻塞的线程将会被唤醒,从…

MySQL 主从复制中 MHA 工具的研究与实践

MySQL 主从复制中 MHA 工具的研究与实践 一、MHA 工具简介二、MHA 的工作原理三、MHA 配置步骤环境准备1. 在主服务器上配置主从复制2. 在从服务器上配置复制 安装 MHA 工具1. 安装必要的依赖包2. 下载并安装 MHA 配置 MHA1. 创建 MHA 配置文件2. 配置 SSH 免密登录 测试 MHA1.…

vue-router 源码分析——8.重定向

这是对vue-router 3 版本的源码分析。 本次分析会按以下方法进行: 按官网的使用文档顺序,围绕着某一功能点进行分析。这样不仅能学习优秀的项目源码,更能加深对项目的某个功能是如何实现的理解。这个对自己的技能提升,甚至面试时…

python连接clickhouse,UnexpectedPacketFromServerError: Code: 102

安装驱动 pip install clickhouse-driver本地环境 python Python 3.8.8 clickhouse-driver 0.2.8 clickhouse server 20.3https://github.com/mymarilyn/clickhouse-driver https://clickhouse-driver.readthedocs.io/en/latest/installation.html from clickhouse_driver i…

基于Spring Boot框架的EAM系统设计与实现

摘 要:文章设计并实现一个基于Spring Boot框架的EAM系统,以应对传统人工管理模式存在的低效与信息管理难题。系统利用Java语言、JSP技术、MySQL数据库等技术栈,构建了一个B/S架构的高效管理平台,提升了资产管理的信息化水平。该系…

如何在Java中实现PDF生成

如何在Java中实现PDF生成 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在软件开发和企业应用中,生成PDF文档是一项常见的需求。Java作为一种强大…

一个小公司的技术开发心酸事

背景 长话短说,就是在2022年6月的时候加入了一家很小创业公司。老板不太懂技术,也不太懂管理,靠着一腔热血加上对实体运输行业的了解,加上盲目的自信,贸然开始创业,后期经营困难,最终散伙。 自己…

独立站外链的重要性是什么?

独立站外链在提升网站排名和增加流量方面有着重要的作用。简单来说,外链就是从其他网站指向你网站的链接。谷歌和其他搜索引擎会根据这些外链来判断你网站的权威性和相关性。 有了高质量的外链,搜索引擎会更倾向于认为你的网站内容是有价值的&#xff0c…

c++ 附赠课程的知识点记录

(1) 静态变量的赋值 再一个例子: (2) 一般在定义类的赋值运算符函数时, operator ( const A& a ) 函数,应避免自赋值的情况,就是把对象 a 又赋值给 对象a 如同 a a 这样的情况…

如何摆脱反爬虫机制?

在网站设计时,为了保证服务器的稳定运行,防止非法数据访问,通常会引入反爬虫机制。一般来说,网站的反爬虫机制包括以下几种: 1. CAPTCHA:网站可能会向用户显示CAPTCHA,要求他们在访问网站或执行…

空状态页面设计的艺术与科学

空状态界面是用户在网站、APP中遇到的因无数据展示而中断体验的界面,这个界面设计对于解决用户疑惑有着很大的帮助。那么我们应该如何设计空状态界面呢?空状态是指在界面设计中,没有内容或数据时所显示的状态。它可能出现在各种情况下&#x…

CentOS 7 搭建rsyslog日志服务器

CentOS 7 搭建rsyslog日志服务器 前言一、IP地址及主机名称规划1.修改主机名 二、配置rsyslog日志服务器1.安装rsyslog服务2.编辑/etc/rsyslog.conf 文件3.启动并启用rsyslog服务4.验证端口是否侦听 三、在rsyslog日志服务器上配置firewalld防火墙四、配置rsyslog日志客户端1.编…

【代码随想录算法训练营第37期 第三十八天 | LeetCode509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯】

代码随想录算法训练营第37期 第三十八天 | LeetCode509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 一、509. 斐波那契数 解题代码C&#xff1a; class Solution { public:int fib(int N) {if (N < 2) return N;return fib(N - 1) fib(N - 2);} };题目链接/文章讲…

刷算法Leetcode---8(二叉树篇)(层序遍历)

前言 本文是跟着代码随想录的二叉树顺序进行刷题并编写的 代码随想录 二叉树的题目较多&#xff0c;就多分了几次写&#xff0c;这是第二篇 第一篇二叉树的文章链接&#xff1a;刷算法Leetcode---7&#xff08;二叉树篇&#xff09;&#xff08;前中后序遍历&#xff09; 这是力…

超实用的VS Code插件推荐

VS Code代码编辑器中提供了丰富的插件&#xff0c;满足不同开发者的需求。这里为大家推荐一些强大的VS Code插件&#xff0c;帮助你打造一个个性化的开发环境&#xff0c;让你的编码体验更加舒适和高效。 打开扩展模块&#xff0c;输入安装包名称&#xff0c;回车进行搜索&…

【WSL】常用命令

文章目录 启动 WSL列出 Linux 发行版安装 Linux 发行版设置默认的 Linux 发行版卸载 Linux 发行版更新 WSL检查 WSL 状态启动和关闭 WSL跨系统文件访问其他命令 Windows Subsystem for Linux (WSL) 提供了一系列命令用于管理 Linux 发行版在 Windows 系统中的运行。下面是一些常…

【Qt之·类QVariant·数据类型】

系列文章目录 文章目录 前言一、概述二、操作及用法1.1 存储数据1.2 获取数据1.3 设置数据1.4 数据类型判断1.5 判断数据是否有效 三、实例演示总结 前言 QVariant是Qt开发中非常重要的一部分&#xff0c;它是Qt的一个核心类&#xff0c;用于处理不同数据类型之间的转换和传递。…

微服务框架Kratos学习笔记

环境配置 export GOPROXYhttps://goproxy.cn export GO111MODULEon go get -u github.com/go-kratos/kratos/tool/kratoskratos 工具安装完成 使用kratos命令创建新项目 kratos new kratos-demo看到这个提示&#xff0c;项目创建完成 go mod tidy 拉取项目依赖 生成所有pro…

保险研究期刊

《保险研究》创刊于1980年&#xff0c;是国家金融监督管理总局主管的学术性保险期刊&#xff0c;是中国保险学会会刊&#xff0c;是中文社会科学引文索引&#xff08;CSSCI&#xff09;来源期刊、中文核心期刊、中国人文社会科学核心期刊、人大“复印报刊资料”重要转载来源期刊…

二、从多臂老虎机看强化学习

二、从多臂老虎机看强化学习 2.1 多臂老虎机问题2.1.1 问题定义2.2.2 问题建模2.2.3 累积懊悔2.2.4 估计期望奖励 2.2 强化学习中的探索与利用平衡2.3 贪心策略2.4 上置信界算法2.5 汤普森采样算法 2.1 多臂老虎机问题 2.1.1 问题定义 在多臂老虎机(mutil-armed bandit, MAB)问…