You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包含ytmusicapi的Python程序时出现翻译文件缺失错误

YTMusicAPI打包为EXE后出现No translation file found错误的解决办法

问题描述

Python调用ytmusicapi的程序直接运行正常,使用命令pyinstaller --noconfirm --onefile --console main.py打包为.exe后,运行时触发FileNotFoundError: [Errno 2] No translation file found for domain: 'base',错误出现在ytmusic = YTMusic()初始化行。

解决方法

1. 打包时包含本地化文件

PyInstaller不会自动收集ytmusicapi的翻译文件,需通过--add-data参数手动包含:

  • Windows系统执行:
pyinstaller --noconfirm --onefile --console --add-data "%PYTHONPATH%\Lib\site-packages\ytmusicapi\locales;ytmusicapi\locales" main.py

(若不清楚PYTHONPATH,可在Python终端输入import sys; print(sys.path)获取site-packages路径)

  • Linux/macOS系统执行:
pyinstaller --noconfirm --onefile --console --add-data "$(python -c 'import ytmusicapi; print(ytmusicapi.__path__[0])')/locales:ytmusicapi/locales" main.py

2. 显式指定初始化语言

创建YTMusic实例时直接指定支持的语言(如英文),避免自动检测系统语言:

ytmusic = YTMusic(language='en')

3. 修改库源码启用fallback(不推荐)

找到site-packages/ytmusicapi/ytmusic.py中__init__方法的gettext.translation调用,将fallback=False改为fallback=True:

translation = gettext.translation('base', localedir=locales_dir, languages=[self.language], fallback=True)

找不到对应翻译文件时会自动使用默认文本,不再抛出错误。

内容的提问来源于stack exchange,提问作者Panzu 05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:47:16