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

同目录自定义Word类导入失败求助(Vosk语音识别场景)

问题描述

目录结构如下:

main/
├─ folder1/
│  ├─ __init__.py
│  ├─ script1.py
│  ├─ Word.py
├─ folder2/
│  ├─ __init__.py
│  ├─ script2.py
├─ __init__.py
├─ main.py
├─ __init__.py

在script1.py中尝试调用同目录的Word.py自定义类,关键代码片段如下:

import wave
import json

from vosk import Model, KaldiRecognizer, SetLogLevel
**from .Word import Word as custom_Word** 

# ... 中间VOSK识别逻辑省略 ...

# 实例化自定义类部分
for obj in sentence['result']:
    w = **custom_Word(obj)**  # 创建自定义Word对象
    list_of_Words.append(w)

# ... 后续输出逻辑省略 ...

自定义Word.py代码:

class Word:
    # 对应VOSK语音识别API JSON格式的单词类

    def __init__(self, dict):
        '''
        参数:
          dict (dict): JSON解析后的字典,包含:
            conf (float): 置信度,0到1之间
            end (float): 单词发音结束时间(秒)
            start (float): 单词发音开始时间(秒)
            word (str): 识别出的单词
        '''
        self.conf = dict["conf"]
        self.end = dict["end"]
        self.start = dict["start"]
        self.word = dict["word"]

    def to_string(self):
        ''' 返回该实例的字符串描述 '''
        return "{:.2f} - {:.2f}\n{:20}".format(
            self.start, self.end, self.word)

运行时出现错误:no module named 'Word' found,已将实例化代码修改为custom_Word(obj),但问题仍未解决。

解决方案

方法1:以包的形式运行脚本

相对导入(from .Word import...)仅在脚本作为Python包的一部分被导入或运行时生效,直接运行script1.py会触发模块找不到的错误。

  • 从main目录的上级目录执行:
    python -m main.folder1.script1
    
  • 或者通过main.py间接调用:
    在main.py中添加代码:
    from folder1.script1 import 你的核心函数名
    你的核心函数名()
    
    然后运行main.py即可。

方法2:改用绝对导入并添加路径

如果需要直接运行script1.py,可以将main目录添加到Python路径后使用绝对导入:

import sys
import os
# 将main目录添加到Python搜索路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from folder1.Word import Word as custom_Word

方法3:直接导入同目录模块

直接导入同目录的Word模块,无需相对路径:

from Word import Word as custom_Word

注意:这种方式要求运行脚本时,当前工作目录是folder1,执行命令如下:

cd main/folder1
python script1.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:09:22