我正在使用Python中的pymysql连接到数据库。它工作得很好,但现在我开始关注error:
回溯(最近一次调用):
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/connections.py", line 327, in __init__
self.connect()
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/connections.py", line 598, in connect
self._request_authentication()
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/connections.py", line 865, in _request_authentication
data = _auth.scramble_old_password(self.password, self.salt) + b'\0'
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/_auth.py", line 72, in scramble_old_password
hash_pass = _hash_password_323(password)
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/_auth.py", line 97, in _hash_password_323
for c in [byte2int(x) for x in password if x not in (' ', '\t', 32, 9)]:
File "/Users/njethani/Desktop/venv/lib/python3.6/site-packages/pymysql/_auth.py", line 97, in <listcomp>
for c in [byte2int(x) for x in password if x not in (' ', '\t', 32, 9)]:
NameError: name 'byte2int' is not defined我使用以下代码行连接到我的数据库(连接字符串):
conn = pymysql.Connect(host='hostname', port=3306, user='username', passwd='password', db='mysql')发布于 2018-11-30 23:13:16
由于pymysql维护者的refuses to release the fix,解决方案是简单地安装一个旧版本的包:
pip3 install --user 'pymysql<0.9'发布于 2018-08-08 19:22:12
我得到了同样的错误,看起来_auth.py无法找到byte2int的引用。我添加了下面这行代码来修改_auth.py以使其正常工作。
从util导入byte2int,int2byte
请注意,util.py是pymysql的,因为在其他包中也会有util.py文件。
https://stackoverflow.com/questions/51565646
复制相似问题