Python 学习整理2

python报错 UnicodeEncodeError: 'gbk' codec can't encode character '\u2705'...

PHPer 2025-08-23 1 0 0
--- 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自动验证滑块登录

    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 模型是真难引入模型

    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 学习中遇到的问题整理

    没有使用asynccontextmanager ,但是报cannot import name 'asynccontextman...

    python3.10.0+pyinstaller4.7打包,IndexError: tuple index out of range...

    error: Microsoft Visual C++ 14.0 or greater is required.

    安装conda搭建python环境(保姆级教程)

    学习飞浆过程中遇到“缺少paddle.fluid”

    [NLP实践01]simpletransformers安装和文本分类简单实现

    primeqa 安装requirements时报错

    sublime text下 Python 问题:TabError: inconsistent use of tabs and s...

    uiautomation报错 No module named 'comtypes.stream' Can not load UIA...

    解决无法加载UIAutomationCore.dll的报错

    汉字目标点选识别-ddddocr(返回识别的内容和位置)

    python 常用命令

    opencv报错及解决:AttributeError: module ‘cv2‘ has no attribute ‘...

    AttributeError: module 'cv2.cv2' has no attribute 'cv'

    sublime text常用快捷键及多行列模式批量操作教程

    python配置opencv环境后,读取图片,报错:can‘t open/read file: check f...

    python代码整理(2022年4月-2024年3月)

    Python和PHP获取百度url跳转的真实地址代码(2022年4月实测有效)

    Pip/python-如何查看已安装的包有哪些版本?如何查看某个包存在哪些版本?pip...

    用undetected_chromedriver代替selenium解决浏览器打不开网页

    sublime text下 Python 问题:TabError: inconsistent use of tabs and s...

    推荐内容

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    BT磁力搜索网站汇总和找不到的资源

    什么是磁力链接,您如何使用?

    Z-Library:全球最大的数字图书馆/含打不开的解决方案/镜像

    使用V2Ray的mKCP协议加速游戏

    v2rayN已停止工作

    【车险课堂】什么是无赔款优待系数ncd,你“造”吗?