使用PyInstaller打包 Python 工程

引言:大模型是个好工具,尽管好多内容都是拼凑的,但是整理学到的就是自己的。因工作需要隐藏python源代码,方法有PyInstaller 、Cpython等多种方法,PyInstaller更为常用,PyInstaller打包 Python 工程步骤整理如下:


一、确保系统环境准备就绪

  • 安装 Python 和 pip
    确认版本(建议 Python 3.6+):

    python3 --version
    pip3 --version
    

    若未安装,则根据使用系统情况进行安装。

  • 安装 PyInstaller
    通过 pip 安装最新版 PyInstaller:

    pip install pyinstaller==4.10
    

二、打包 Python 工程

1. 最简打包(生成单个可执行文件)
  • 打包并保留控制台窗口(适用于命令行程序)

    pyinstaller your_script.py
    
2.常用选项
  • 进入工程根目录,执行:

    pyinstaller --onefile your_script.py
    
    • --onefile: 生成单个可执行文件,将所有依赖打包成单个 .exe(Windows)或无后缀文件(Linux/macOS)。
    • your_script.py:替换为你的主程序入口文件。
    • 输出目录:dist/ 下生成可执行文件。
  • 打包 GUI 程序(隐藏控制台)

    pyinstaller --onefile --windowed your_script.py
    

    --windowed: 适用于 PyQt/Tkinter 等 GUI 程序,运行时不显示命令行窗口。

  • 使用 --debug 参数生成详细日志:

    pyinstaller --debug your_script.py
    

三、打包高级选项

1. 添加数据文件(如配置文件、图片)
pyinstaller --onefile --add-data "data/config.json:data" your_script.py
  • 格式源路径;目标路径(Windows 用 ;,Linux/macOS 用 :)。
  • 示例:将 data/config.json 打包到程序内的 data 目录。
2. 指定程序图标
pyinstaller --onefile --icon=app.ico your_script.py
  • 支持 .ico(Windows)、.icns(macOS)、.png(部分系统)。
3. 排除不必要的模块(减小体积)
pyinstaller --onefile --exclude-module matplotlib your_script.py
  • 避免打包大型但未使用的库(如 matplotlibnumpy)。
4. 隐藏导入的模块(解决 ModuleNotFoundError
pyinstaller --onefile --hidden-import=pandas --hidden-import=numpy your_script.py
  • 或通过 .spec 文件配置(见下文)。
5. 启用 UPX 压缩(需安装 UPX)
pyinstaller --onefile --upx-dir=/path/to/upx your_script.py
<

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

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

相关文章

Python 程序设计讲义(1):PyCharm 安装教程

Python 程序设计讲义&#xff08;1&#xff09;&#xff1a;PyCharm 安装教程 一、安装 Python 解释器 1、下载 Python 安装文件 点击如下链接进入 Python 官网&#xff1a; https://www.python.org/ 在弹出的页面中单击【Downloads】&#xff0c;然后单击下面的【Download Pyt…

uniapp云打包安卓

1、基础云打包 2、修改logo3、怎么实现下拉菜单4、修改启动页启动页默认这样 5、URL Scheme页面跳转

Python----NLP自然语言处理(英文分词器--NLTK)

一、NLTK_介绍NLTK&#xff08;Natural Language Toolkit&#xff0c;自然语言处理工具包&#xff09;&#xff0c;一个主要用于清洗和处理英文文本的Python工具包。它有很多的功能&#xff0c;我们主要使用的是它的分词功能&#xff0c;之前讲过中文分词是比较复杂的&#xff…

传统浏览器过时了?Dia如何用AI重新定义上网体验

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 传统浏览器过时了&#xff1f;Dia如何用AI重新定义上网体验它是什么核心功能搜索编程左右互动感谢…

基于DTLC-AEC与DTLN的轻量级实时语音增强系统设计与实现

基于DTLC-AEC与DTLN的轻量级实时语音增强系统设计与实现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 1. 引言 在当今的互联网通信时代,实时语音通信已成为人们日常生活中不可或缺的一部分。然而,语音通信质量常…

Attu-Milvus向量数据库可视化工具

本文介绍了如何安装可视化工具Attu&#xff0c;包括使用Docker镜像启动并访问Attu服务。 目录 前言 一、Attu安装 1. Docker容器安装 2. 桌面程序安装 二、使用 Milvus Web U 前言 Attu是一款专为Milvus向量数据库打造的开源数据库管理工具&#xff0c;提供了便捷的图形化…

高效检测数据突变的MDAM算法详解

在数据分析领域&#xff0c;我们经常需要检测数据序列中的异常变化。今天给大家介绍一种简单但非常有效的算法——MDAM (Mean Drift Accumulation Monitor)&#xff0c;它能帮你轻松发现数据中的均值突变现象&#xff01;1. &#x1f50d; 算法原理累计数均值突变检测算法(MDAM…

记录一道sql面试题3

题目&#xff1a;有一张表a,和一张表ba:id age name1 18 kethy2 32 kavin3 22 tonyb:id dept description2 sale today2 dev sunday提问&#xff1a;将a和b两张表左连接查询&#xff0c;条件是a.id b.id会得到什么结果。查询的字段为a.*,b.* 。说明&#xff1a;左表 a 中 id1 …

linux系统------LVS+KeepAlived+Nginx高可用方案

目录 一、环境搭建 1.环境准备 2.安装ipvsadm 和 安装 keepalived&#xff08;Lvs服务器&#xff09; 3.为两台RS配置虚拟ip&#xff08;nginx服务器&#xff09; 1.配置虚拟网络子接口&#xff08;回环接口&#xff09; 2.修改内容如下: 3.配置ARP 二、KeepalivedLvsN…

【MySQL】性能优化实战指南:释放数据库潜能的艺术

文章目录MySQL性能优化实战指南&#xff1a;释放数据库潜能的艺术&#x1f680; 引言为什么需要MySQL性能优化&#xff1f;&#x1f4cb; 性能优化基础知识MySQL性能瓶颈分析1. 硬件资源瓶颈2. MySQL内部瓶颈&#x1f3c6; 优化配置策略大全&#x1f4be; 内存配置优化InnoDB缓…

Unity 3D碰撞器

在Unity中&#xff0c;碰撞器&#xff08;Collider&#xff09;是用于检测物体之间碰撞的组件&#xff0c;它们定义了物体的物理边界。碰撞器与刚体&#xff08;Rigidbody&#xff09;配合使用&#xff0c;实现物理模拟。下面我将按您的要求&#xff0c;从碰撞器的种类、常用参…

Windows批处理实现带时间戳ping

windows环境 &#xff0c; 将以下代码保存为 .bat文件 echo off echo.---------------------------------------------------------- echo.----------------------------------------------------------- echo off set /p hostplease input your destination ip : set logfi…

GeoPandas 城市规划:Python 空间数据初学者指南

安装和设置 在深入研究数据之前&#xff0c;我们需要准备好工具。设置 GeoPandas 及其必要的依赖项是第一步。 我们将在 Google Colab 中完成此操作。 !pip install geopandas contextily matplotlib 空间数据有多种格式&#xff0c;但 GeoJSON 是常见且易于访问的格式。Ge…

力扣面试150题--环形子数组的最大和

Day 80 题目描述思路 初次做法&#xff1a;在昨天代码的基础上修改 计算普通子数组的最大和 使用动态规划计算以每个位置为起点的最大子数组和&#xff08;存储在 val 中&#xff09;&#xff0c;并更新全局最大值 rightmax。计算后缀和与前缀和 sum[i]&#xff1a;从位置 i 到…

python类Keys

类Keys的定义:Elass Keys (object): 程轩开Set of special keys codes.#n# 第 15 章 网络爬虫 合情些准出照地限公轵 esms0 pro 瘀 Δ器代刍奄炖慧 图 15-39 工件肉业鱼光得 国有上子 理人场营&#xff0c;有司;可有B 相关围书 图 15-40 页源代码 ython". 名可能不鞋 NUL…

svn如何设置忽略文件夹或者文件的提交

使用svn&#xff0c;每次提交代码时&#xff0c;都会把java的编译文件target&#xff0c;或者前端的node_modules&#xff0c;dist等不需要提交的目录或这文件&#xff0c;列出来实现。通过配置svn&#xff0c;可以在提交代码时&#xff0c;自动忽略这些不需要提交到仓库的文件…

MonoGame 游戏开发框架日记 -06

第六章&#xff1a;动画类以及动画精灵 好久不见家人们好久没更新MonoGame系列了&#xff0c;不是主包弃坑了&#xff0c;主要是主包最近忙着搞项目学科一找暑假工打&#xff0c;这不一闲下来就立刻马不停蹄的来给大家更新了&#xff0c;今天的教程代码部分比较多接下来我们正式…

LVS四种工作模式深度解析

LVS&#xff08;linux virual server&#xff09;LVS四种工作模式深度解析 LVS-NAT模式 四台虚拟机 火墙关闭 关闭火墙 systemctl stop firewalldsystemctl disable firewalld关闭开机自启火墙1.clienteth0 IP&#xff1a;172.25.254.1002.lvs eth0ip :172.25.254.200; eth1ip:…

[设计模式]C++单例模式的几种写法以及通用模板

之前在这篇文章中简单的介绍了一下单例模式的作用和应用C中单例模式详解_c单例模式的作用-CSDN博客&#xff0c;今天我将在在本文梳理单例模式从C98到C11及以后的演变过程&#xff0c;探讨其不同实现方式的优劣&#xff0c;并介绍在现代C中的最佳实践。 什么是单例模式&#x…

小架构step系列19:请求和响应

1 概述作为Web程序&#xff0c;通用形式是发起HTTP请求并获取返回的结果&#xff0c;在这个过程中&#xff0c;需要把请求映射到代码的接口上&#xff0c;提供这种接口的类一般称为Controller&#xff0c;也就是需要把请求映射到Controller的接口方法上&#xff0c;把请求的参数…