|-转 python报错 UnicodeEncodeError: 'gbk' codec can't encode character '\u2705'...
--- Logging error ---
Traceback (most recent call last):
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\logging\__init__.py", line 1086, in emit
stream.write(msg + self.terminator)
UnicodeEncodeError: 'gbk' codec can't encode character '\u2705' in position 42: illegal multibyte sequence
Call stack:
File "<string>", line 1, in <module>
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\multiprocessing\spawn.py", line 129, in _main
return self._bootstrap(parent_sentinel)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\multiprocessing\process.py", line 315, in _bootstrap
self.run()
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\site-packages\uvicorn\_subprocess.py", line 76, in subprocess_started
target(sockets=sockets)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\site-packages\uvicorn\server.py", line 61, in run
return asyncio.run(self.serve(sockets=sockets))
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\asyncio\base_events.py", line 634, in run_until_complete
self.run_forever()
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\asyncio\base_events.py", line 601, in run_forever
self._run_once()
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\asyncio\base_events.py", line 1905, in _run_once
handle._run()
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\site-packages\uvicorn\server.py", line 68, in serve
config.load()
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\site-packages\uvicorn\config.py", line 467, in load
self.loaded_app = import_from_string(self.app)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\site-packages\uvicorn\importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "G:\ProgramData\miniconda3\envs\speaker-extractor\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "D:\python\fastapi-speaker-extractor\app\main.py", line 39, in <module>
logger.info("✅ WhisperX 模型加载成功!")
Message: '✅ WhisperX 模型加载成功!'
Arguments: () --- Logging error --- 后面这些是什么,是那里错误了吗
从报错信息来看,主要是日志输出时碰到了编码问题(UnicodeEncodeError: 'gbk' codec can't encode character '\u2705'...),再加上后面还有一些版本不兼容的提示。下面分点解释原因和解决办法:
1. 最直接的错误:日志编码不兼容(GBK → UTF-8)
Python 的logging模块默认会用系统的编码(Windows 下常是'gbk')往控制台写日志。而你的代码里用了 Unicode 字符(比如✅这个 emoji 或特殊符号),gbk编码不认识这种字符,就会抛出UnicodeEncodeError。
解决思路:
让 Python 日志用 UTF-8 编码输出,而不是系统默认的 GBK。
做法有很多种,比较常见的是在程序开头(或配置日志的地方)加上下面这样的代码,强制让标准输出的编码变成 UTF-8:
我的logging是自定义的:在项目根目录下的logger.py 内容是 import logging
import os
class CustomLogger:
def __init__(self, name, log_file, level=logging.INFO):
self.logger = logging.getLogger(name)
self.logger.setLevel(level)
# 创建一个文件处理器,写入日志文件
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(level)
# 创建一个控制台处理器,输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
# 定义日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 将处理器添加到 Logger 对象
self.logger.addHandler(file_handler)
self.logger.addHandler(console_handler)
def get_logger(self):
return self.logger 。要怎么改 “让 Python 日志用 UTF-8 编码输出,而不是系统默认的 GBK。”你的CustomLogger类是自定义的日志封装,它内部使用了 Python 标准库的logging模块,并分别添加了一个文件处理器(FileHandler)和一个控制台处理器(StreamHandler)。...
浏览更多内容请先登录。
立即注册
更新于:2025-08-23 08:00:06
相关内容
python的selenium的用法整理
selenium3定位元素(包括父子,兄弟)及常见操作
使用Selenium自动验证滑块登录
AI和Python 学习整理
AudioSeparationGUI 对输入的音频,自动根据说话人进行分类 20250817
SoloSpeech 项目安装和运行测试 20250817
python 多项目部署 优先考虑用Anaconda
espnet 声音分离
ClearerVoice-Studio 安装测试遇到的问题,安装pysptk一直失败
uvr5 bs roformer 爆显存以及关于huggingface的国内镜像hf-mirror.com
用Kimi编程
Studio One 调试插件Techivation AI-Rack 一键智能混音
在hf-mirror.com模型镜像站用代码下载模型遇到报错 speaker-diarization模型不...
用腾讯元宝编程
Conda国内镜像源
数字对象标识符 (DOI)
在创建conda环境时,如果不指定Python版本,conda将不会默认安装Python。
whisperx 的使用 音频处理
Win10系统 Trae的使用 关于powershell报错: 因为在此系统上禁止运行脚本
warp的使用
AI编程工具比较
FastApi
python 报错整理2
给出一份「Python 中常见 import 名称 与 pip install 名称不一致」的速查表
Windows用Conda创建环境报错 CondaToSNonInteractiveError: Terms of Se...
快速验证顺序是否被改
Python 常用命令整理
魔塔社区 modelscope 常用命令
Python 学习整理2
fastapi-speaker-extractor whisperx 项目报错 ValueError: The chosen ...
python报错 UnicodeEncodeError: 'gbk' codec can't encode character '\u...
python whisperx 报错 in load_align_model raise ValueError(f'The ch...
pyannote/embedding 模型是真难引入模型
Trae 或者是我自己 莫名奇妙创建了个文件,影响了项目代码的运行。
WhisperX 无法加载模型
HUGGINGFACE_HUB_CACHE 设置错误导致的问题
Trae的bug太多了,怪不得免费
通义之旅
通义之旅2
目标说话人声音提取模型训练的思路
python报错 can't convert cuda:0 device type tensor to numpy. Use Tenso...
Expected all tensors to be on the same device, but found at least two ...
腾讯元宝推荐的项目结构(音频处理项目)
音频处理项目fse
各种python 相关命令
python 报错 SyntaxError: 'return' outside function
python常用命令
腾讯编程助手
python一些扩展兼容安装的处理方案
推荐内容