Getting AttributeError: module 'base64' has no attribute 'decodestring' error while running on python 3.9.6
Getting AttributeError: module 'base64' has no attribute 'decodestring' error while running on python 3.9.6
问题描述:
在 python 3.9.6
上 运行 时出现 AttributeError: module 'base64' has no attribute 'decodestring'
错误
重现步骤:
下面是一个虚拟程序,而 运行 在 python 3.9.6 上,我收到 `AttributeError: module 'base64' has no attribute 'decodestring'`` 错误:
from ldif3 import LDIFParser
parser = LDIFParser(open('dse3.ldif', 'rb'))
for dn, entry in parser.parse():
if dn == "cn=Schema Compatibility,cn=plugins,cn=config":
if entry['nsslapd-pluginEnabled'] == ['on']:
print('Entry record: %s' % dn)
错误信息:
python3.9 1.py ✔ venvpy3.9 11:12:01
Traceback (most recent call last):
File "/Users/rasrivas/local_test/1.py", line 4, in <module>
for dn, entry in parser.parse():
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 384, in parse
yield self._parse_entry_record(block)
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 357, in _parse_entry_record
attr_type, attr_value = self._parse_attr(line)
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 315, in _parse_attr
attr_value = base64.decodestring(line[colon_pos + 2:])
AttributeError: module 'base64' has no attribute 'decodestring'
python版本
python --version
Python 3.9.6
操作系统:
macOS 11.5.2
Python版本:
python --version
Python 3.9.6
python-ldap 版本:
ldif3-3.2.2
尝试在 python 中安装 base64,使用命令:
pip install pybase64
或:
pip3 install pybase64
从docs for Python 3.8开始,base64.decodestring()
被描述为:
Deprecated alias of decodebytes().
看起来 base64.decodestring()
函数自 Python 3.1 以来已被弃用,并在 Python 3.9 中删除。您需要改用 bas64.decodebytes()
函数。
这是一个旧问题 post 但我要离开这里以防有人偶然发现同样的问题。
要将 base64 解码为字节,请使用 base64.b64decode()
您可以找到更多信息here
decodestring()
从 v 3.9 开始不再存在。查看此文档,使用 base64.decodebytes() 代替
问题描述:
在 python 3.9.6
上 运行 时出现AttributeError: module 'base64' has no attribute 'decodestring'
错误
重现步骤:
下面是一个虚拟程序,而 运行 在 python 3.9.6 上,我收到 `AttributeError: module 'base64' has no attribute 'decodestring'`` 错误:
from ldif3 import LDIFParser
parser = LDIFParser(open('dse3.ldif', 'rb'))
for dn, entry in parser.parse():
if dn == "cn=Schema Compatibility,cn=plugins,cn=config":
if entry['nsslapd-pluginEnabled'] == ['on']:
print('Entry record: %s' % dn)
错误信息:
python3.9 1.py ✔ venvpy3.9 11:12:01
Traceback (most recent call last):
File "/Users/rasrivas/local_test/1.py", line 4, in <module>
for dn, entry in parser.parse():
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 384, in parse
yield self._parse_entry_record(block)
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 357, in _parse_entry_record
attr_type, attr_value = self._parse_attr(line)
File "/Users/rasrivas/local_test/venvpy3.9/lib/python3.9/site-packages/ldif3.py", line 315, in _parse_attr
attr_value = base64.decodestring(line[colon_pos + 2:])
AttributeError: module 'base64' has no attribute 'decodestring'
python版本
python --version
Python 3.9.6
操作系统:
macOS 11.5.2
Python版本:
python --version
Python 3.9.6
python-ldap 版本:
ldif3-3.2.2
尝试在 python 中安装 base64,使用命令:
pip install pybase64
或:
pip3 install pybase64
从docs for Python 3.8开始,base64.decodestring()
被描述为:
Deprecated alias of decodebytes().
看起来 base64.decodestring()
函数自 Python 3.1 以来已被弃用,并在 Python 3.9 中删除。您需要改用 bas64.decodebytes()
函数。
这是一个旧问题 post 但我要离开这里以防有人偶然发现同样的问题。
要将 base64 解码为字节,请使用 base64.b64decode()
您可以找到更多信息here
decodestring()
从 v 3.9 开始不再存在。查看此文档,使用 base64.decodebytes() 代替