热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pymysqlTypeError:objectsupportingthebufferAPIrequired

使用python语言,通过pymysql库访问mysql数据库(别问我为什么不用orm框架,有些时候orm框架真的不如原生态的sql好用),

使用python语言,通过pymysql库访问mysql数据库(别问我为什么不用orm框架,有些时候orm框架真的不如原生态的sql好用),在我本机运行是ok的,但在另一同事机器运行失败,报错如下:

Traceback (most recent call last):File "D:/work//scripts/main.py", line 25, in biz_service.initialize("./config/config.yaml")File "D:\work\\scripts\biz\sync_security_service.py", line 57, in initializepassword=self._config.mysql.password,db=self._config.mysql.database)File "D:\work\scripts\env\lib\site-packages\pymysql\__init__.py", line 94, in Connectreturn Connection(*args, **kwargs)File "D:\work\scripts\env\lib\site-packages\pymysql\connections.py", line 325, in __init__self.connect()File "D:\work\scripts\env\lib\site-packages\pymysql\connections.py", line 599, in connectself._request_authentication()File "D:\work\scripts\env\lib\site-packages\pymysql\connections.py", line 817, in _request_authenticationauthresp = _auth.scramble_native_password(self.password, self.salt)File "D:\work\scripts\env\lib\site-packages\pymysql\_auth.py", line 39, in scramble_native_passwordstage1 = sha1_new(password).digest()File "D:\work\scripts\env\lib\hashlib.py", line 149, in __hash_newreturn _hashlib.new(name, data)
TypeError: object supporting the buffer API required

   开始以为是python版本和pymysql版本的问题,后来换成一样的版本,还是报错!!!!从上面的日志其实可以很清楚的看到错误的函数:sync_security_service.py的第57行(不得不说,详细的错误日志及堆栈是个好东东),而57行就是:

self._connect=pymysql.connect(host=self.mysql.ip,port=self.mysql.port,user=self.mysql.user,password=self.mysql.password,db=self.mysql.database)

于是决定跟踪pymysql.connect函数到底干了什么~~~

在跟踪的过程中,偶然发现:self.mysql.password是一个整型,竟然是一个整型,密码应该是字符串类型,怎么会是整型呢?原来同事的密码是一串数字123456,python在读配置文件过程中默认把123456转成了整型,修改如下:

self._connect=pymysql.connect(host=self.mysql.ip,port=self.mysql.port,user=self.mysql.user,password=str(self.mysql.password),db=self.mysql.database)

再次运行,发现问题解决。


推荐阅读
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • ArcBlock 发布 ABT 节点 1.0.31 版本更新
    2020年11月9日,ArcBlock 区块链基础平台发布了 ABT 节点开发平台的1.0.31版本更新,此次更新带来了多项功能增强与性能优化。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
author-avatar
hy11011_847
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有