简单的测试代码

# main.py
import mysql.connectorDB_HOST='localhost'
DB_PORT=3306
DB_NAME='lover'
DB_USER='root'
DB_PASSWORD='xxxx'# 连接数据库
connection = mysql.connector.connect(host=DB_HOST,port=DB_PORT,database=DB_NAME,user=DB_USER,password=DB_PASSWORD)if connection.is_connected():cursor = connection.cursor()cursor.execute("select database();")record = cursor.fetchone()print("你连接到的数据库是:", record)cursor.close()connection.close()print("数据库连接关闭成功!")
else:print("数据库连接失败!")

使用pyinstall简单打包

打包命令:pyinstaller .\main.py

运行打包后的可执行文件

在这里插入图片描述
报错如下:

Traceback (most recent call last):File "main.py", line 10, in <module>File "mysql\connector\pooling.py", line 322, in connectFile "mysql\connector\connection_cext.py", line 142, in __init__File "mysql\connector\abstracts.py", line 1605, in connectFile "mysql\connector\connection_cext.py", line 354, in _open_connection
RuntimeError: Failed raising error.
[PYI-10064:ERROR] Failed to execute script 'main' due to unhandled exception!

报错的原因是PyInstaller未能正确打包MySQL Connector的C扩展模块。也就是这个目录里面的文件Lib\site-packages\mysql\vendor\plugin

解决办法

  1. 手动复制目录过去
    不使用--onefile参数打包,将Lib\site-packages\mysql\vendor\plugin复制到_internal目录,要保证目录的完整性就是说复制后的目录应该是这样的_internal\mysql\vendor\plugin
    在这里插入图片描述
  2. 使用命令添加目录
    打包命令:pyinstaller --add-data ".venv/Lib/site-packages/mysql/vendor/plugin;mysql/vendor/plugin" .\main.py
    注意命令中.venv/Lib/site-packages/mysql/vendor/pluginmysql/vendor/plugin并不是重复了,而是前面是源目录后面是目的目录,中间用分号;隔开。

检查打包结果

打开_internal目录我们可以看见mysql/vendor/plugin扩展目录就证明打包成功了
在这里插入图片描述
运行打包后的程序。
在这里插入图片描述

打包成单文件

打包命令:pyinstaller --onefile --add-data ".venv/Lib/site-packages/mysql/vendor/plugin;mysql/vendor/plugin" .\main.py

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

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

相关文章

应对高并发:淘宝商品评论实时数据 API 高效接入开发实践

在电商平台的运营中&#xff0c;商品评论数据是用户决策、商家优化及平台运营的重要依据。淘宝作为国内领先的电商平台&#xff0c;其商品评论数据具有实时性强、数据量大、并发访问频繁等特点。本文将围绕淘宝商品评论实时数据 API 的高效接入展开&#xff0c;探讨在高并发场景…

踩坑日记:虚拟机桥接模式无法连接网卡

对于一名网安学生&#xff0c;我们渗透测试一般是需要虚拟机使用桥接模式。 但是vm直接设置成桥接模式并不能上网。还要进行如下配置 改一下这个桥接的地方。改成我们主机的网卡。 如何查看主机网卡呢&#xff1f; 设置搜索网络

Android 系统默认的Launcher3,Android 系统的导航栏(通常是屏幕底部)显示的 4 个快捷应用图标,如何替换这4个应用图标为客户想要的。

Android 系统默认的Launcher3, Android 系统的导航栏(通常是屏幕底部)显示的 4 个快捷应用图标, 如何替换这4个应用图标为客户想要的。 开发云 - 一站式云服务平台 按如下方式可以修改应用图标。 diff --git a/packages/apps/Launcher3/res/xml/default_workspace_5x6_no_a…

maker-pdf 文档文字识别,并用python实现

下面我将详细讲解maker-pdf文档文字识别的技术原理、特点&#xff0c;并提供完整的Python实现代码及优化方案。内容结合最新文档和OCR技术实践&#xff0c;适合开发者直接集成到项目中。 一、maker-pdf 核心技术解析 maker-pdf是基于深度学习的端到端OCR工具链&#xff0c;专…

Go基础(Gin)

go mod init my-gin-app 初始化一个 Go 项目&#xff0c;创建一个go.mod文件go mod tidy 自动整理项目依赖&#xff0c;确保go.mod和go.sum文件与代码实际使用的依赖一致go mod init&#xff1a;创建项目的 “依赖说明书”。go mod tidy&#xff1a;整理 “说…

21、鸿蒙学习——使用App Linking实现应用间跳转

简介 使用App Linking进行跳转时&#xff0c;系统会根据接口传入的uri信息&#xff08;HTTPS链接&#xff09;将用户引导至目标应用中的特定内容&#xff0c;无论应用是否已安装&#xff0c;用户都可以访问到链接对应的内容&#xff0c;跳转体验相比Deep Linking方式更加顺畅。…

Cursor无限邮箱续费方法

1.注册无限邮箱2925 2.“其他邮箱” 3.点击左下角添加邮箱 4.管理员身份运行Windos PowerShell 5.输入该指令并运行&#xff0c;修改机器码 irm https://aizaozao.com/accelerate.php/https://raw.githubusercontent.com/yuaotian/go-cursor-help/refs/heads/master/scripts/…

LeetCode Hot100(图论)

200. 岛屿数量 题意 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你…

Ubuntu Gnome 安装和卸载 WhiteSur-gtk-theme 类 Mac 主题的正确方法

WhiteSur-gtk-theme 是一个流行的 GNOME 桌面主题&#xff0c;可以让 Ubuntu 的桌面环境看起来像 macOS。以下是安装和卸载 WhiteSur-gtk-theme 的详细步骤&#xff0c;包括解释每个命令的作用。 一、安装 WhiteSur-gtk-theme 1. 准备工作 在安装主题之前&#xff0c;建议确…

如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板

DataGear 数据可视化分析平台&#xff08;http://datagear.tech/&#xff09; 在新发布的5.4.1版本中&#xff0c;内置表格图表新增了serverSidePaging选项&#xff0c;仅需通过简单的配置&#xff0c;即可为表格添加服务端分页、关键字查询、排序功能。 本文以SQL数据集作为数…

股指期货套保比例怎么算?

在金融市场里&#xff0c;套期保值&#xff08;套保&#xff09;是一种常见的风险管理手段&#xff0c;目的是通过期货市场对冲现货市场的风险。而套保比例&#xff08;也叫套保比率&#xff09;的计算&#xff0c;是套保操作的核心。简单来说&#xff0c;套保比例就是“期货头…

逻辑回归(Logistic Regression)算法详解

文章目录 一、逻辑回归&#xff1a;从线性回归到二分类的跨越1.1 逻辑回归简介1.2 Sigmoid函数&#xff1a;概率映射的数学本质1.3 参数 w w w 和 b b b 对Sigmoid的调控1.4 从线性回归到分类1.5 决策边界&#xff1a;从概率到类别&#xff08;结合图3、图4&#xff09; 二、…

HTTPS通信流程:SSL/TLS握手全解析

2021&#xff0c;2022&#xff0c;2023年1-8月看了很多技术书籍&#xff0c;现在想来忘了很多&#xff0c;用到的也不多&#xff0c;但是因为提前接触过&#xff0c;所以很多新东西&#xff0c;接受起来&#xff0c;比预想的要容易些。最近突然想要回忆下HTTPS&#xff0c;居然…

SVG 在 VSCode 中的使用与优势

SVG 在 VSCode 中的使用与优势 引言 SVG(可缩放矢量图形)是一种基于可扩展标记语言的图形图像格式,与传统的位图格式(如 JPEG 或 PNG)相比,SVG 图像具有更高的灵活性和可缩放性。随着前端开发领域的不断发展,SVG 在网页设计中的应用越来越广泛。本文将介绍 SVG 在 Vis…

Ubuntu开放mysql 3306端口

Ubuntu开放mysql 3306端口 1. 检查 UFW 防火墙规则2. 检查 iptables 规则 1. 检查 UFW 防火墙规则 sudo ufw status verbose | grep 3306若输出包含 3306/tcp ALLOW&#xff0c;表示端口已开放(如下) ubuntuUbuntu2404:~$ sudo ufw status verbose | grep 3306 3306/tcp …

CentOS 卸载docker

1、停止docker服务 systemctl stop docker.socket systemctl stop docker systemctl stop containerd 2、列出已安装的docker包 yum list installed | grep -i docker 输出如下&#xff1a; containerd.io.x86_64 1.6.33-3.1.el7 docker-ce-stab…

MySQL数据库----DML语句

目录 DML-介绍SQL-DML-添加数据SQL-DML-修改数据SQL-DML-删除数据 DML-介绍 DML英文全称是 Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增删改操作。 添加数据&#xff08;INSERT&#xff09; 修改数据&#xff08;UPDATE&#xff…

Prompt:提示词工程

前言在LLM大放异彩的今天&#xff0c;一个简单的问题&#xff0c;可能就会引出一个方案&#xff0c;一篇散文&#xff0c;而驱动这一切的&#xff0c;正是输入的“提示词&#xff08;Prompt&#xff09;”Prompt工程就是&#xff1a;与大模型打交道时&#xff0c;如何更好地设计…

GSAP 动画库在 Vue3 项目中的使用总结

前言 GSAP&#xff08;GreenSock Animation Platform&#xff09;是目前最强大的 JavaScript 动画库之一&#xff0c;以其出色的性能和简洁的API而闻名。本文将基于实际项目经验&#xff0c;详细介绍如何在 Vue3 项目中使用 GSAP 创建流畅、专业的动画效果&#xff0c;包括核心…

【字节跳动】数据挖掘面试题0007:Kmeans原理,何时停止迭代

文章大纲 K-means 原理与迭代停止条件⚙️ 一、K-Means核心思想&#x1f501; 二、迭代步骤详解关键数学操作 ⏹️ 三、何时停止迭代&#xff1f;Kmeans 算法实现代码 ⚠️ 四、面试常见扩展问题1. K值如何选择&#xff1f;2. 初始质心影响结果吗&#xff1f;3. 算法缺陷与改进…