Python 3.x “如何修复”;TypeError:需要类似字节的对象,而不是';str'&引用;python中的错误?

Python 3.x “如何修复”;TypeError:需要类似字节的对象,而不是';str'&引用;python中的错误?,python-3.x,python-2.7,logging,Python 3.x,Python 2.7,Logging,我正在将Python2.7代码升级到Python3.6,但每次尝试使用日志在控制台上编写东西时,我都会遇到这个错误 TypeError:需要类似字节的对象,而不是“str” 我读过大多数与此类似的问题,但没有一个有效 #mainTest.py模块 从配置导入记录器 log=logger.getLogger(_文件__) def函数(): message=“测试” 日志信息(消息) #代码 #logger.py 导入日志记录 导入操作系统 将classpathDir作为cf导入 def getL

我正在将Python2.7代码升级到Python3.6,但每次尝试使用日志在控制台上编写东西时,我都会遇到这个错误

TypeError:需要类似字节的对象,而不是“str”

我读过大多数与此类似的问题,但没有一个有效

#mainTest.py模块
从配置导入记录器
log=logger.getLogger(_文件__)
def函数():
message=“测试”
日志信息(消息)
#代码
#logger.py
导入日志记录
导入操作系统
将classpathDir作为cf导入
def getLogger(loggerForFile):
logger=logging.getLogger(os.path.basename(loggerForFile))
如果不是logger.handlers:
logging.basicConfig(格式='%(asctime)s%(名称)-12s%(levelname)-8s%(消息)s',
datefmt='%d/%m/%Y%I:%m:%S%p',filename=cf.ROOT\u DIR+“/output/processing.log”,
filemode='wb',level=logging.DEBUG)
console=logging.StreamHandler()
console.setLevel(logging.DEBUG)
#设置一种更便于控制台使用的格式
格式化程序=日志记录。格式化程序('%(asctime)s%(名称)-12s:%(levelname)-8s%(消息)s',
datefmt='%d/%m/%Y%I:%m:%S')
#告诉处理程序使用此格式
console.setFormatter(格式化程序)
#将处理程序添加到根记录器
logger.addHandler(控制台)
返回记录器
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
打印(“日志配置模块”)
当我在python2.7上使用相同的代码时,我得到了以下输出:

22/05/2019 01:38:11 mainTest.py:信息测试
在使用相同代码的python 3.6上,我遇到了以下错误:

2019年5月22日03:17:59 mainRF.py:信息测试
---记录错误---
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python3.6/logging/_init__uu.py”,第996行,在emit中
stream.write(msg)
TypeError:需要类似字节的对象,而不是“str”
调用堆栈:
文件“mainTest.py”,第126行,在
运行_组合()
文件“mainTest.py”,第20行,以run\u组合形式
日志信息(消息)
信息:“测试”
参数:()

设置日志记录基本配置时,我已更改
python filemode='wb'
to
python filemode='w'
它工作正常。

您的代码在我的设置中执行得很好。。Python 3.7.3 x64..能否在问题中添加完整的堆栈跟踪。完成。添加了完整的堆栈跟踪。我猜占位符“设置控制台使用更简单的格式的一些代码”正在安装一个格式设置程序,但没有返回正确的类型。只是用缺少的代码更新了问题