[Python]pymysql对应PyInstaller解析

在这里插入图片描述

报错信息:

# 未获取异常如:
AttributeError: 'str' object has no attribute 'cursor'# 获取异常如:
__init__() takes 1 positional argument but 5 were given

本地使用pymysql的场景:使用了tkinter进行GUI开发功能,又采用了pyinstaller进行了打包成exe的操作。

了解tkinter常用组件:https://blog.csdn.net/yingshukun/article/details/78705337
组件使用情况,其他是python自带的

pip3 install PyInstaller 
pip3 install paramiko
pip3 install pymysql

原本是在python365的环境上进行的操作,历史中都没有出现打包及链接数据库问题

换了新的电脑,python环境升级到了python370,发生了链接数据问题,即最前边提到的报错,
以下对比python365和python370链接数据库的代码变化

可以发现如下差异,不同点在于pymysql.connect的参数传递存在差异,python370严格限制了必须要传递对应的参数名称,以防止顺序错误。

python365


def __init__(self, selectdb):if (selectdb == 1):self.host = "xxxxxx"self.username = "xxxxxx"self.password = "xxxxxx"self.dbname = "xxxxxx"else:self.host = "xxxxxx"self.username = "xxxxxx"self.password = "xxxxxx"self.dbname = "xxxxxx"self.selectdb = selectdbtry:self.db = pymysql.connect(self.host, self.username, self.password, self.dbname)except Exception as e:# 上传完毕弹出完成框tkinter.messagebox.showerror("定制封面应用脚本", "连接数据库失败")self.cursor = self.db.cursor()

python370

 def __init__(self, selectdb):if (selectdb == 1):self.host = "xxxxxx"self.username = "xxxxxx"self.password = "xxxxxx"self.dbname = "xxxxxx"else:self.host = "xxxxxx"self.username = "xxxxxx"self.password = "xxxxxx"self.dbname = "xxxxxx"self.selectdb = selectdbtry:self.db = pymysql.connect(host=self.host, port=3306, user=self.username, password=self.password,db=self.dbname, charset='utf8')except Exception as e:print(e)# 上传完毕弹出完成框tkinter.messagebox.showerror("定制封面应用脚本", "连接数据库失败")self.cursor = self.db.cursor()

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

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

相关文章

[绍棠] docxtemplater实现纯前端导出word

1.下载需要的依赖 2.util文件夹下创建doc.js文件 doc.js import docxtemplater from docxtemplater import PizZip from pizzip import JSZipUtils from jszip-utils import { saveAs } from file-saver import ImageModule from "docxtemplater-image-module-free"…

Vscode 上安装 Compilot

GitHub Copilot 是由 OpenAI 和 GitHub 开发的 AI 工具。其目的是通过自动完成代码来帮助开发人员使用集成开发环境 (IDE),如 Visual Studio Code。它目前仅作为技术预览版提供,因此只有已在候补名单上被接受的用户才能访问它。对…

MATLAB - 计算机械臂关节扭矩以平衡末端力和力矩

系列文章目录 前言 产生力矩以平衡作用在平面机器人末端执行器体上的端点力。要使用各种方法计算关节力矩,请使用刚体树机器人模型的几何雅各比(geometricJacobian)和反动力学(inverseDynamics)对象函数。 一、初始化…

Java:选择哪个Java IDE好?

Java:选择哪个Java IDE好? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&…

element-plus表格前端实现分页效果

文章目录 需求分析 需求 对表格中的数据进行本地分页&#xff0c;不调用接口 分析 html <el-table fit :cell-style"{ textAlign: center }" :data"tableData" style"width: 100%" height"350":header-cell-style"{backg…

网络:FTP

1. FTP 文件传输协议&#xff0c;FTP是用来传输文件的协议。使用FTP实现远程文件传输的同时&#xff0c;还可以保证数据传输的可靠性和高效性。 2. 特点 明文传输。 作用&#xff1a;可以从服务器上下载文件&#xff0c;或将本地文件上传到服务器。 3. FTP原理 FTP有控制层面…

关于SpringBoot项目整合Log4j2实现自定义日志打印失效原因

主要的原因是因为&#xff0c;SpringBoot的logback包的存在&#xff0c;会导致Spring Boot项目优先实现logback的日志设置&#xff0c;所以导致我们用Log4j2实现自定义日志失效。 先找l哪个包引用了logback包 进入之后查询logback 然后双击包 发现是spring-boot-starter-loggin…

智慧充电桩的市场前景未来

随着电动汽车的日益普及&#xff0c;充电问题成为广大车主的关注焦点。作为领先的科技企业&#xff0c;天津通捷创科为您带来了一站式解决方案——共享充电桩APP。 <h1>一、即刻定位&#xff0c;充电桩触手可及</h1> 在天津通捷创科的共享充电桩APP中&#xff0c…

定时器开发基础

1定时器的基本概述 通过滴漏和漏沙瓶这两个例子简单讲述定时器的基本工作原理。 STM32的常见的定时器资源&#xff1a; 系统嘀嗒定时器SysTick、看门狗定时器WatchDog、实时时钟RTC、基本定时器、通用定时器、高级定时器。 系统嘀嗒定时器SysTick &#xff1a;这是一个集成在C…

基于FPGA的图像双边滤波实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 双边滤波数学模型 4.2 双边滤波的特性 4.3 FPGA实现架构 5.算法完整程序工程 1.算法运行效果图预览 将FPGA数据导入到matlab对比测试&#xff1a; 2.算法运行软件版本 vivado2019.2 …

实战之-Redis商户查询缓存

一、什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震器",防止过高…

最新!进口芯片龙头代理商名录更新

众所周知&#xff0c;代理商一直充当着厂家和客户中间的桥梁的角色。经过这么多年的变化和沉淀&#xff0c;摆在代理商面前的挑战与日俱增&#xff0c;定位也逐渐开始分化。 由于原厂对于市场的把控越来越严&#xff0c;各类原厂直营商城的上线以及原厂之间的并购直接主导了市…