优化PyInstaller打包Tkinter应用:从环境配置到多文件处理

使用pyinstaller打包tkinter程序 (1)如何同时打包多个python文件(2)打包过程中有缺失的包怎么处理(3)如何解决打包程序过大的问题以上三个问题是使用pyinstaller打包python文件常见的问题,我将以自己开发的一个tkinter程序来进行说明,所有操作与结果自己已经验证。如果不考虑打包程序大小的问题,可能会出现一个打包的exe程序好几百兆,甚至更大,这不仅占用资源,启动速度也比较慢,所以最好是重新创建一个比较干净的python环境要好一些。 阅读详情

1. 为什么你的Tkinter程序打包后像个“胖子”?

每次用PyInstaller打完包,看着那个动辄几百兆的.exe文件,是不是感觉心都凉了半截?启动慢得像老牛拉车,分享给同事朋友还得先传半天。我自己刚开始用Tkinter做小工具的时候也这样,一个简单的数据查看器,打包出来居然有300多兆,简直离谱。后来我才明白,问题往往出在“环境”上。

我们日常写代码的Python环境,就像一间住了很久的卧室,东西越堆越多。你可能为了做数据分析装了Anaconda,里面自带了几百个包;也可能为了尝试某个新功能,随手pip install了一堆库。这些包和它们的依赖,在你打包时,PyInstaller会非常“热心”地把它们认为可能用到的部分都塞进最终的exe里。尤其是像numpy、pandas、scikit-learn这些科学计算库,它们本身就很庞大,而且依赖复杂。即使你的Tkinter界面只用了pandas来读一个简单的CSV文件,PyInstaller为了保险,也可能把整个pandas生态都打包进去。

所以,解决“肥胖”问题的核心思路,就是给打包过程提供一个“干净”的专用环境。这个环境里只安装你的程序运行所必需的最少依赖。这听起来有点麻烦,但实际操作起来,就像为重要的客人单独准备一间整洁的客房,远比收拾你堆满杂物的主卧要简单高效。我实测下来,用这个方法,同一个Tkinter程序从330M缩减到了70M,启动时间从十几秒缩短到两三秒,效果立竿见影。

2. 第一步:搭建一个“精装修”的打包专用环境

2.1 告别Anaconda,拥抱轻量级虚拟环境

很多朋友习惯用Anaconda,但它对于打包来说太“重”了。我更推荐使用Python原生的venv模块来创建虚拟环境,它足够轻量,没有多余的预装包。

打开你的命令行(CMD或PowerShell),先找一个你喜欢的位置,比如D:\dev\my_tkinter_app,然后执行:

# 先切换到你的项目目录
cd D:\dev\my_tkinter_app

# 创建一个名为 ‘pack_env‘ 的虚拟环境
python -m venv pack_env

这行命令会在当前目录下生成一个pack_env文件夹,里面包含了一个独立的Python解释器和pip工具。接下来激活它:

  • 在Windows上:
    pack_env\Scripts\activate
    
    激活后,命令行前面会出现(pack_env)的提示。

激活环境后,你会发现python和pip命令都指向了这个干净的环境。你可以用pip list看一下,里面只有pip和setuptools这两个最基本的包,这就是我们想要的“毛坯房”。

2.2 精准安装:只装必需的“家具”

现在,我们需要把程序运行必需的“家具”搬进来。关键是要精确,不要估摸着来。

首先,强烈建议在你的项目根目录下维护一个requirements.txt文件。这个文件应该在你的开发主环境中生成。在你的主开发环境下,运行:

pip freeze > requirements.txt

但注意,这会导出整个环境的所有包,我们需要手动编辑它,只保留你的Tkinter程序直接导入的库。比如你的主程序main.py开头是这样的:

import tkinter as tk
from tkinter import ttk, filedialog
import pandas as pd
import numpy as np
from PIL import Image

那么你的requirements.txt可能就只保留pandas, numpy, Pillow(PIL)以及它们最核心的依赖。像jedi, autopep8这类开发工具包,一定要删掉。

然后,在刚激活的pack_env环境中,使用国内镜像源快速安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

最后,在这个干净环境里安装PyInstaller本身:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

这一步做完,你的打包专用间就布置好了。它只包含程序运行和打包的必要物品,没有一件多余杂物,为生成苗条的exe打下了坚实基础。

3. 第二步:驯服PyInstaller,处理多文件和隐藏依赖

3.1 从生成Spec文件开始:给打包画张“图纸”

很多新手喜欢直接用pyinstaller -F -w main.py这种一条命令打包,这适合最简单的单文件脚本。一旦你的项目有了自己的模块(比如自己写的utils.py、config.py)或者文件夹结构,这种方式就容易出问题。更可控的方法是先生成一个spec文件,它就像是PyInstaller的打包“图纸”或“配方”。

在激活的虚拟环境中,进入你的项目目录,执行:

pyi-makespec -F -w main.py

这里,-F代表打包成单个exe文件(-D则是生成一个包含很多文件的文件夹),-w是告诉PyInstaller这是图形窗口程序,不要显示控制台黑框。执行后,会生成一个main.spec文件。这个文件本质是一个Python脚本,我们可以修改它来精细控制打包过程。

3.2 修改Spec文件:核心配置详解

用文本编辑器打开main.spec,我们重点关注Analysis部分。这是整个打包流程的核心。

# -*- mode: python ; coding: utf-8 -*-

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)
  1. 添加多文件模块:如果你的主程序main.py导入了同目录下的tools.py,或者导入了子目录lib下的模块,你需要把它们都加到第一个列表里,确保PyInstaller能追踪到这些依赖。

    a = Analysis(
        ['main.py', 'tools.py', 'lib/calculator.py', 'lib/formatter.py'],
        pathex=['.'], # 可以添加模块搜索路径
        ...
    )
    
  2. 添加数据文件(datas):这是最容易出错的地方!如果你的程序用到了图片、图标、配置文件(如.json)、数据库文件(如.db)等非Python代码文件,必须在这里声明。PyInstaller不会自动打包它们。 格式是:datas = [('源文件或文件夹路径', '打包后在exe中的虚拟路径')] 例如,你有一个images文件夹和一个config.ini文件:

    datas=[
        ('images/icon.ico', 'images'),  # 将icon.ico打包到exe内的images文件夹下
        ('config.ini', '.'),           # 将config.ini打包到exe的根目录下
        ('data_files', 'data')         # 将整个data_files文件夹打包到exe内的data目录下
    ],
    

    在代码中,你需要使用PyInstaller提供的sys._MEIPASS属性来获取这些资源在运行时被解压到的临时路径。我通常这样写:

    import sys
    import os
    
    def resource_path(relative_path):
        """ 获取资源的绝对路径。打包到exe后,用_MEIPASS;开发时用当前路径。"""
        try:
            # PyInstaller创建的临时文件夹路径
            base_path = sys._MEIPASS
        except AttributeError:
            base_path = os.path.abspath(".")
        return os.path.join(base_path, relative_path)
    
    # 使用示例
    icon_path = resource_path('images/icon.ico')
    config_path = resource_path('config.ini')
    
  3. 解决“隐式导入”(hiddenimports):有些模块是动态导入的(比如通过__import__()或importlib.import_module()),或者某些库(如pandas)在内部按需加载子模块。PyInstaller的静态分析可能找不到它们,导致打包后运行出现ModuleNotFoundError。 你需要将缺失的模块名添加到hiddenimports列表中。如何知道缺什么?最直接的方法就是看打包后运行exe报错信息。比如常见的:

    hiddenimports=['openpyxl.cell._writer', 'sklearn.utils._weight_vector', 'pandas._libs.tslibs.np_datetime'],
    

3.3 实战:一个完整的Spec文件案例

假设我们有一个Tkinter项目,结构如下:

my_app/
├── main.py          # 主程序
├── utils/           # 自定义工具包
│   ├── __init__.py
│   └── helper.py
├── assets/          # 资源文件夹
│   ├── icon.ico
│   └── style.json
└── config.ini

那么,一个调整后的main.spec文件Analysis部分可能长这样:

a = Analysis(
    ['main.py', 'utils/__init__.py', 'utils/helper.py'],
    pathex=['.'], # 添加当前目录到模块搜索路径
    binaries=[],
    datas=[
        ('assets/icon.ico', 'assets'),
        ('assets/style.json', 'assets'),
        ('config.ini', '.')
    ],
    hiddenimports=['pandas._libs.tslibs.np_datetime'], # 根据错误提示添加
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[], # 可以在这里排除不需要的包,比如‘pygame‘, ‘matplotlib‘(如果没用的话)
    noarchive=False,
)

4. 第三步:高级优化与体积瘦身实战

4.1 利用UPX压缩,进一步“瘦身”

PyInstaller支持使用UPX(一个强大的可执行文件压缩工具)来压缩最终的exe。这通常能再减少20%-30%的体积。首先,你需要从UPX官网下载对应你操作系统的版本,解压后将其路径(包含upx.exe的目录)添加到系统的环境变量PATH中,或者在spec文件中指定。

在spec文件的EXE部分,默认upx=True就是启用的。但你可以更精细地控制:

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    ...,
    upx=True, # 启用UPX压缩
    upx_exclude=[], # 排除某些文件不被压缩,例如某些加壳的DLL
    ...
)

有时,压缩某些Windows系统DLL会导致程序启动问题。如果遇到奇怪启动失败,可以尝试设置upx=False关闭压缩,或者通过upx_exclude排除特定文件来排查。

4.2 排除(excludes)不必要的巨无霸库

如果你的程序压根没用matplotlib画图,也没用scipy做科学计算,但你的环境里可能有它们(或者被其他包拖进来),你可以在Analysis的excludes参数里直接把它们踢出打包列表。

excludes=['matplotlib', 'scipy', 'PyQt5', 'notebook', 'jupyter'],

这个操作非常有效,尤其是排除像matplotlib这样带着大量字体文件和后端库的包,能瞬间节省几十兆空间。但务必确认你的代码和你的依赖包确实没有用到它们。

4.3 启用控制台调试与日志捕获

在开发调试阶段,我建议先不要用-w(无控制台)参数打包,或者先在spec里设置console=True。这样当程序崩溃时,错误信息会打印在控制台,而不是一闪而过,让你无从下手。

你还可以在代码中引入简单的日志记录,将信息写入文件:

import logging
import sys

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('my_app_debug.log'),
        logging.StreamHandler(sys.stderr) # 同时输出到控制台
    ]
)

打包后运行exe,查看生成的my_app_debug.log文件,里面会记录详细的运行日志,对于排查打包后特有的问题(如资源文件找不到)非常有帮助。

5. 打包、测试与问题排查指南

5.1 执行打包与验证

配置好spec文件后,打包命令非常简单:

pyinstaller main.spec

PyInstaller会开始分析依赖、收集文件、编译字节码、最后生成exe。完成后,在项目目录下会生成dist文件夹,你的exe文件就在里面。

重要的一步:测试! 不要在你的开发环境里测试这个exe,因为环境变量和路径都不同。把dist文件夹里的整个输出(如果用了-D模式,就是一个包含exe的文件夹;如果是-F模式,就是单个exe文件)复制到一个全新的、没有Python环境的目录下,然后双击运行。这才是模拟用户电脑的真实环境。

5.2 常见问题与“踩坑”记录

  1. “Failed to execute script” 或 程序闪退:

    • 首要检查:用命令行运行exe。打开CMD,cd到exe所在目录,直接输入exe文件名运行。这样程序关闭后,错误信息也会留在控制台窗口里。
    • 典型原因1:datas里声明的资源文件(图片、数据)没找到。请仔细检查resource_path函数和datas配置的路径是否正确。
    • 典型原因2:缺失hiddenimports。仔细阅读命令行报错,看是哪个ModuleNotFoundError,将其添加到hiddenimports列表中。
  2. 程序启动速度依然很慢:

    • 单文件exe(-F模式)在启动时,需要先将所有内嵌的文件解压到临时目录,这个过程需要时间。如果对启动速度极其敏感,可以考虑使用-D(目录模式)打包,虽然会散落很多文件,但启动速度会快一些。
    • 检查是否打包了过多不必要的库(用excludes)。
    • 确保使用了UPX压缩。
  3. 杀毒软件误报: PyInstaller打包的程序,尤其是用了UPX压缩的,有时会被一些激进的杀毒软件误报为病毒。这是已知问题。解决方法包括:

    • 尝试不使用UPX压缩(upx=False)。
    • 对你发布的exe进行代码签名(购买数字证书)。
    • 在程序发布时附上一个说明,告知用户这是安全的,或引导用户将文件加入杀毒软件白名单。
  4. 版本兼容性问题:

    • 尽量在Windows 10/11的环境下进行打包,以获得最好的系统兼容性。
    • 注意Python版本。用Python 3.8-3.10打包的程序通常有较好的兼容性。Python 3.11及更高版本在依赖某些第三方库时可能遇到兼容性问题。
    • 原则是:在尽量低版本的系统上打包,以获得更广泛的兼容性。但也要平衡第三方库对新版Python的支持。

打包Tkinter应用从“臃肿”到“精干”,这个过程需要一些耐心和反复调试。我的经验是,从创建一个绝对干净的环境开始,每一步都明确目的——只添加必需的东西。每次修改spec文件后都重新打包并到纯净环境测试。虽然前期会花些时间,但当你最终得到一个体积小巧、启动迅速、分享方便的可执行文件时,那种成就感是非常实在的。特别是当你把工具发给非技术同事,他们双击就能直接使用时,你会觉得这些折腾都是值得的。记住,spec文件是你的打包蓝图,保存好它,以后项目升级或微调时,你就能快速复现一个稳定的发布流程。

Python GUI程序打包实战:PyInstaller稳定打包Tkinter应用为单文件exe 在软件开发中,将脚本程序打包成独立可执行文件是常见的分发需求,尤其对于需要交付给非技术用户的内部工具或桌面应用。其核心原理是通过封装解释器、依赖库和资源文件,创建一个自包含的运行环境,从而免去用户手动配置环境的繁琐步骤。这项技术对于提升软件交付效率和用户体验具有重要价值,广泛应用于工具软件、教育演示和原型系统等场景。本文聚焦于Python生态下的GUI程序打包方案,针对Tkinter框架,深入对比了PyInstaller与Nuitka两种主流工具。PyInstaller因其稳定的依赖分析和资源打包机制,在复 阅读详情

相关推荐

PyInstaller 5.13.0 实战:3步打包Tkinter GUI,生成单文件EXE(附图标设置)

本文详细介绍了如何使用PyInstaller 5.13.0将Tkinter GUI应用打包为单文件EXE,包括环境准备、基础打包命令、进阶配置选项和图标设置技巧。通过实战示例和优化建议,帮助开发者轻松解决Python应用程序分发难题,提升用户体验。

weixin_34183910的博客 334

python tkinter和程序的打包

因工作需要,接触python的可视化界面模块tkinter 下面是一个比较不错的教程:   https://www.cnblogs.com/shwee/p/9427975.html#D1       这篇文章记录了如何将python的tkinter程序打包成.exe的 还是挺有意思的 http://www.cnblogs.com/gopythoner/p/6337543.html...

qq_36750158的博客 5138

PyInstaller避坑指南:解决Tkinter打包时‘No module named‘报错(含多文件/隐式导入配置)

本文深入解析PyInstaller打包Tkinter应用时常见的‘No module named’报错根源,并提供系统解决方案。重点阐述了依赖收集机制、多文件项目配置,以及通过hiddenimports精准处理隐式导入等核心技巧,帮助开发者高效生成独立可执行的exe文件。

weixin_28223453的博客 307

python tkinter项目_【编程】用Py2app打包Python-Tkinter项目

MacOS下打包Python应用参照以下步骤将我们上一篇编写的main.py文件打包成一个MacOS标准软件:pip3 install py2app命令进行安装py2app工具从命令行用cd xxx进入到main.py文件所在的目录(可选)py2applet --make-setup main.py命令创建一个setup.py的打包脚本文件python3 setup.py py2app -A命令运...

weixin_36153937的博客 557

tkinter - 使用Pyinstall进行打包封装

1 需要安装 PyInstaller C:\Users\30818> pip install pyinstaller 2 添加一个图标文件 并生成spec 配置文件 # -F 生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内 # -w 禁止Windows的命令行窗口。不然双击exe时会打开一个黑乎乎的dos窗口; # -i 生成的exe文件会带有这个图标,有识别度也更好看 C:\Users\30818\Desktop\imgdownload> py

1848

PyInstaller 5.13.0 实战:3步打包Tkinter GUI,生成单文件EXE(附图标与隐藏控制台)

本文详细介绍了如何使用PyInstaller 5.13.0将Tkinter GUI应用打包成单文件EXE,涵盖图标嵌入、控制台隐藏等进阶技巧。通过3步实战流程,帮助开发者快速生成专业级可执行文件,提升Python应用程序的分发效率与用户体验。

438

tkinter + 程序打包

tkinter

Itsme_MrJJ的博客 1074

PyInstaller打包Tkinter程序避坑大全:从图标不显示到运行闪退的终极解决指南

本文详细解析了使用PyInstaller打包Tkinter程序时常见的图标不显示、运行闪退等问题,提供了从路径验证、资源打包配置到复杂依赖关系处理的系统化解决方案。特别针对EXE打包过程中的技术难点,给出了调试技巧和性能优化建议,帮助开发者高效完成Python应用的打包部署。

weixin_33738555的博客 353

Tkinter-Designer可执行文件:使用PyInstaller打包指南

你是否在将Tkinter-Designer部署到多台设备时,反复遇到Python环境配置问题?是否希望用户无需安装Python即可使用你的GUI应用?本指南将通过PyInstaller工具,三步实现Tkinter-Designer的二进制打包,解决跨平台部署难题。读完本文,你将获得: - 独立可执行文件的构建流程 - 打包配置优化方案 - 常见错误排查指南 - 自动化构建脚本 ## 2. 环境准...

gitblog_00521的博客 862

Python图文生成工具开发:从Pillow图像处理到PyInstaller打包全流程

图像处理是计算机视觉和多媒体应用的基础技术,其核心原理是通过算法对像素数据进行操作,实现图像的加载、编辑、合成与输出。在工程实践中,Python因其简洁语法和丰富的库生态,成为快速实现图像处理功能的理想选择。其中,Pillow库作为PIL的现代分支,提供了强大的图像操作API,而Tkinter则能便捷地构建图形用户界面,两者结合可高效开发桌面端应用。这类技术的核心价值在于将复杂的图像算法封装为易用的工具,显著降低创意实现的技门槛。其应用场景广泛,涵盖社交媒体内容制作、个性化Meme生成、宣传物料快速设计等。

weixin_34043301的博客 460

(三)Python-tkinter-pyinstaller项目之EXE打包器(代码展示版)

由于网上只讲述原理的文章太多,怎么使用的文章太少,所以本人文章只负责展示效果及代码注释,不着重讲解原理 Python-kivy-pyinstaller项目之EXE打包器前言一、Headerfile自定义库二、EXE打包器完整代码及注释三、本项目安装包链接 前言 本文为EXE打包器项目的代码展示版,如想阅览项目效果,请跳转:Python-tkinter-pyinstaller项目之EXE打包器(项目展示版) 一、Headerfile自定义库 本文为方便建立EXE打包器,自定义了一个Headerfile自定

呆呆熊的博客 793

PyInstaller:Python 桌面应用打包完全指南(代码详解版)

PyInstaller 是一个将 Python 应用程序打包成独立可执行文件的跨平台工具。与其他打包工具(如 cx_Freeze、Nuitka)相比,它的核心优势在于自动化程度高—— 能够自动分析 Python 代码的依赖关系,并将 Python 解释器、依赖库、应用代码打包成一个(或一组)可执行文件。用户无需安装 Python 环境即可运行,极大降低了 Python 应用的分发门槛。某些库(如pandassqlalchemy)有复杂的动态依赖,需通过hook 文件告诉 PyInstaller 如何处理。

conkl的博客 2165

endnote让参考文献整整齐齐

这篇文章主要是针对利用 endnote 插入参考文献时,参考文献第一行和后面的行对不齐的问题 下面是示意图 可以看到我们的参考文献对的整整齐齐的,比较好看。 下面介绍具体步骤 1、打开endnote。编辑我们使用的参考文献样式。我这儿是叫 ZZ_MODIFIED_GEEBINF 复制 2、找到布局,每个参考开头,将光标放在在参考开头后面,点插入字段,制表符 3、右下角悬挂式输出哪儿选择全部段...

雾隐雾现的至渝博客 5万+

Python程序打包实战:如何用PyInstaller将Tkinter应用瘦身70%(附完整配置流程)

本文详细介绍了如何使用PyInstaller为Tkinter桌面应用进行深度打包优化,实现高达70%的体积瘦身。通过创建纯净虚拟环境、精细编辑Spec文件、排除无用依赖及使用UPX压缩等实战技巧,手把手指导开发者将臃肿的exe文件精简为高效、专业的发布版本,并附完整配置流程。

k8l9m0n的博客 433

Cadence Sigrity PowerSI实战:从.brd到S参数提取的完整避坑指南

本文详细介绍了使用Cadence Sigrity PowerSI进行信号完整性分析的完整流程,从.brd文件预处理到S参数提取的关键技巧。通过实战案例和避坑指南,帮助工程师高效解决高速PCB设计中的信号质量问题,提升仿真精度和设计效率。

carrot的博客 696

ACPWorkbench_for_BP10

ADC支持9种采样率:8000Hz、11025Hz、12000Hz、16000Hz、22050Hz、24000Hz、32000Hz、44100Hz 以及 48000Hz。选择5种MCLK源时, 模块内部的MCLK源无效。I2S 采样率支持:8K,11.025K,12K,16K, 22.05K, 24K, 32K, 44.1K, 48K, 88.2K, 96K, 176.4K 和 192K。DAC采样率支持:8K,11.025K,12K,16K,22.05K, 24K, 32K, 44.1K和48K。

dddds222_的博客 4567

PyInstaller 单文件与多文件模式:资源加载的 2 种策略与性能影响

本文深入解析PyInstaller单文件与多文件模式在资源加载策略上的差异,提供实战解决方案。通过对比两种模式的性能指标(打包体积、启动时间等),帮助开发者根据项目需求做出最优选择,并分享处理图像、数据文件等特殊资源的高级技巧与疑难排查方法。

weixin_36250534的博客 788

自定义配方画面的具体方法示例 - 嵌入式

自定义配方画面的具体方法示例 - 嵌入式在TIA博途WinCC中,您可以通过编程来创建自定义配方画面。这些画面可以用于显示和编辑您的嵌入式系统中的配方参数。下面是一个示例,展示了如何在WinCC中实现自定义配方画面的方法。首先,您需要创建一个新的画面,并添加必要的控件来显示和编辑配方参数。在WinCC中,您可以使用文本框、按钮和标签等控件来实现这一目的。以下是一个简单的示例,展示了如何创建一个具有文本框和按钮的配方画面:创建新画面:添加控件:编辑控件属性:编写脚本: 在这个示例中,我们定义了两个变量和来存储

CyberBytezZ的博客 1039

从Tkinter脚本到专业安装包:PyInstaller进阶打包实战

本文详细介绍了如何将Tkinter应用从基础的PyInstaller打包进阶为专业的Windows安装程序。通过PyInstaller参数调优、资源管理及Inno Setup脚本配置,解决打包后路径、依赖等常见问题,最终生成包含安装向导、快捷方式和卸载功能的专业安装包,显著提升工具的专业性和用户体验。

life6的博客 529

Python爬取小红书种草商品评论数据:从入门到实战全攻略(附反爬+情感分析方案)

Python爬取小红书种草商品评论数据,核心是“抓包找到正确的接口+处理登录验证+合理的反爬策略”。新手不用一开始就追求多笔记批量爬取和情感分析,先把单笔记的评论抓取和存储跑通,再逐步扩展功能。我做的这个系统现在每天帮朋友爬取3-5款美妆产品的评论,自动做情感分析和关键词提取,她再也不用手动翻评论了,效率提升了80%。如果你们在开发中遇到具体问题,比如接口找不到、Cookie过期、IP被封,都可以在评论区留言,我会一一解答。后续也可以出一期小红书笔记种草数据爬取的教程,帮助大家更全面地分析竞品数据。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1352

Android Framework WMS全面概述和知识要点

WindowManagerService 类是整个 WMS 的核心大脑,处于系统服务层,负责协调和管理所有与窗口相关的操作。它在 Android 系统架构中起到承上启下的关键作用,向上对接应用层的窗口请求,向下与 SurfaceFlinger 等底层组件交互,确保窗口能够正确地在屏幕上显示和管理。

大模型大数据攻城狮的专栏 1795

PyInstaller打包Python程序:从原理到实战的完整指南

在软件开发领域,将脚本或应用打包成可独立分发的可执行文件是一项基础且关键的工程实践。其核心原理在于将代码、解释器及所有依赖封装为一个自包含的单元,从而实现跨环境的无缝部署。这项技术对于提升软件的可移植性和用户体验具有重要价值,尤其适用于数据分析工具、自动化脚本和桌面应用等场景。本文聚焦于Python生态中的PyInstaller工具,深入解析其如何通过‘冻结’机制,将.py文件转化为.exe,并解决打包过程中常见的体积优化、依赖管理和路径访问等工程难题,帮助开发者高效完成从代码到产品的最后一公里。

weixin_34160277的博客 399

SEGGER Embedded Studio初体验

先楫HPM5E00EVK开发环境搭建

hywing's blog 1110

FreeSimpleGUI应用分发指南:使用PyInstaller打包Python桌面应用终极教程

你是否创建了一个漂亮的FreeSimpleGUI桌面应用,却苦恼于如何分享给没有Python环境的用户?🤔 别担心!这篇完整的FreeSimpleGUI应用分发指南将教你使用PyInstaller将Python脚本转换为独立的可执行文件,让你的应用可以在任何Windows电脑上运行,无需安装Python!✨ FreeSimpleGUI是一个功能强大的Python GUI库,让Python开发者

gitblog_00962的博客 510

YOLOv11与CLIP融合的零样本目标检测技术:原理、实现与创新实践

YOLO(You Only Look Once)系列作为单阶段检测器的代表,以其实时高效的特性在工业界获得广泛应用。YOLOv11作为该系列的最新演进,引入了多项架构创新: C3K2模块:采用双小卷积核替代传统大卷积核,在保持感受野的同时减少计算量。当参数c3k=False时退化为YOLOv8的C2F模块,提供灵活的精度-效率权衡。 C2PSA(Convolutional block with Parallel Spatial Attention):通过并行空间注意力机制增强对微小目标的特征提取能力,这对

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1070

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 深入解析Mosquitto配置文件:从基础到高级安全设置
下一篇: 统信UOS下CH384串口卡驱动编译与自启动配置指南
人间清醒863
博客等级 码龄3年 33粉丝 1544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值