[index-tts]启动报错啊,有没有大佬来救一下

2025-10-28 546 views
2

看不懂看不懂 (index-tts) root@VM-0-80-ubuntu:/workspace/index-tts# python indextts/infer.py Traceback (most recent call last): File "/workspace/index-tts/indextts/infer.py", line 9, in from utils.feature_extractors import MelSpectrogramFeatures File "/workspace/index-tts/indextts/utils/feature_extractors.py", line 4, in from utils import safe_log ImportError: cannot import name 'safe_log' from 'utils' (unknown location) (index-tts) root@VM-0-80-ubuntu:/workspace/index-tts# python webui.py Traceback (most recent call last): File "/workspace/index-tts/webui.py", line 11, in from indextts.infer import IndexTTS File "/workspace/index-tts/indextts/infer.py", line 9, in from utils.feature_extractors import MelSpectrogramFeatures File "/workspace/index-tts/indextts/utils/feature_extractors.py", line 4, in from utils import safe_log ImportError: cannot import name 'safe_log' from 'utils' (unknown location)

回答

4

用deepseek给的处理方案成功启动了哈哈哈

根据你的项目结构和搜索结果,safe_log 实际定义在 indextts/utils/utils.py 中,但代码试图从错误的路径导入。以下是完整的修复方案:

🔧 修复步骤 ​修正导入路径 修改 indextts/utils/feature_extractors.py 的导入语句:

python

原错误代码:from utils import safe_log 修正为:

from indextts.utils.utils import safe_log # 绝对路径导入 ​确保 indextts 被识别为包 在以下位置创建空 init.py 文件(即使整合包没有,显式声明更安全):

bash touch indextts/init.py touch indextts/utils/init.py ​设置 Python 路径(二选一)​

​临时生效(终端中运行):​ bash export PYTHONPATH=/workspace/index-tts:$PYTHONPATH python webui.py ​永久生效(在 webui.py 开头添加):​ python import sys, os sys.path.insert(0, os.path.dirname(os.path.abspath(file))) # 添加项目根目录到路径 ​验证修复 在 indextts/utils/utils.py 的 safe_log 函数前添加调试输出:

python def safe_log(x: torch.Tensor, clip_val: float = 1e-7) -> torch.Tensor: print("safe_log 已成功加载!") # 调试语句 return torch.log(torch.clamp(x, min=clip_val)) 重新运行 python webui.py,如果看到此输出说明导入成功。

📂 最终项目结构 /workspace/index-tts/ ├── indextts/ │ ├── init.py # 新增的空文件 │ ├── infer.py │ └── utils/ │ ├── init.py # 新增的空文件 │ ├── utils.py # 包含 safe_log 定义 │ └── feature_extractors.py # 修正导入路径 └── webui.py

1

目测是有的环境不支持这种层级的import,已经修好了,可以拉一下main分支再试试