#1009 NameError: name 'DeepgramApiError' is not defined

104.28.**4 Posted at: 10 months ago

Traceback (most recent call last):
File "/Users/tips/voice/pyvideotrans/videotrans/task/job.py", line 146, in run

trk.trans()

File "/Users/tips/voice/pyvideotrans/videotrans/task/_translate_srt.py", line 45, in trans

raw_subtitles = run(
                ^^^^

File "/Users/tips/voice/pyvideotrans/videotrans/translator/__init__.py", line 844, in run

from videotrans.translator._google import Google

File "/Users/tips/voice/pyvideotrans/videotrans/translator/_google.py", line 10, in

from videotrans.configure._except import NO_RETRY_EXCEPT

File "/Users/tips/voice/pyvideotrans/videotrans/configure/_except.py", line 83, in

DeepgramApiError,
^^^^^^^^^^^^^^^^

NameError: name 'DeepgramApiError' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/tips/voice/pyvideotrans/videotrans/task/job.py", line 155, in run

from videotrans.configure._except import get_msg_from_except

File "/Users/tips/voice/pyvideotrans/videotrans/configure/_except.py", line 83, in

DeepgramApiError,
^^^^^^^^^^^^^^^^

NameError: name 'DeepgramApiError' is not defined

=====
macOS-26.0.1-arm64-arm-64bit
version:v3.81
frozen:False
language:zh

10 Replies

#1 0.0.**0 reply at 10 months ago

本条内容由 gpt-5-mini 回复

问题很可能是源码中引用了尚未定义或未正确导入的 DeepgramApiError,导致在导入 videotrans.configure._except 时抛出 NameError(常见于定义顺序错误或循环导入)。

请按下面步骤修复并验证:

  1. 定位并打开文件

    • 打开项目中的文件:videotrans/configure/_except.py
  2. 临时且安全的修复(推荐快速验证)

    • 在文件开头的 imports 之后、任何引用 DeepgramApiError 之前,添加一个后备定义或尝试导入的代码片段。例如将以下代码插入到文件顶部(靠近其他 import 语句之后):
      try:

      from videotrans.configure._deepgram import DeepgramApiError

      except Exception:

      class DeepgramApiError(Exception):
          """Fallback 定义,避免导入时 NameError(用于解决循环导入或缺失定义)。"""
          pass
    • 保存并重新运行程序,检查错误是否消失。
  3. 根本原因排查(建议)

    • 搜索仓库中是否存在 DeepgramApiError 的原始定义:

      • 在项目根目录运行:grep -R "class DeepgramApiError" -n .
      • 或搜索导出/其它模块中是否应当导出此异常:grep -R "DeepgramApiError" -n .
    • 若找到了原始定义,确认 _except.py 中是否存在循环导入(例如 A 导入 B,B 又导入 A)。若是循环导入,应把通用异常类抽离到单独模块(如 videotrans/configure/_errors.py),在各处统一导入该模块以避免循环依赖。
    • 若仓库中不存在 DeepgramApiError 的定义,应用上一步的后备定义或在合适位置添加正式定义(继承自 Exception 并包含必要属性/消息)。
  4. 长期修复建议

    • 若你能修改代码,建议把所有自定义异常集中到一个文件(例如 videotrans/configure/_errors.py),并在各处通过 from videotrans.configure._errors import DeepgramApiError 等方式引用,避免循环导入和定义顺序问题。
    • 提交一个 PR 或 issue 给仓库(如果是从 upstream 拉的代码),说明发生 NameError 的上下文并附上修复建议。
  5. 如果问题依旧或你无法定位定义位置

    • 请提供完整的文件 videotrans/configure/_except.py 内容(或将该文件的前200行和后200行粘贴),以及仓库中是否存在其它与 Deepgram 相关的模块(如 _deepgram.py)的文件列表;或将 videotrans/logs/ 目录下最新的日志文件一并提供,以便进一步分析。

按上面快速修复后,大多数 NameError 情况会被解决。如果仍有错误,请把上述请求的文件/日志贴上来。

#2 2408:**:13c7 reply at 10 months ago

Admin

同一个虚拟环境下执行 pip3 install deepgram-sdk

#3 104.28.**4 reply at 10 months ago

试过了,还是不行

#4 DeepSeek reply at 10 months ago

这个问题不是缺少 deepgram-sdk 包,而是代码中的 DeepgramApiError 类定义缺失或导入顺序问题。请按以下步骤操作:

  1. 临时解决方案

    • 打开文件 videotrans/configure/_except.py
    • 在文件开头(其他 import 语句之后)添加以下代码:

      try:
        from videotrans.configure._deepgram import DeepgramApiError
      except ImportError:
        class DeepgramApiError(Exception):
            """临时定义用于解决 NameError"""
            pass
    • 保存文件并重新运行程序
  2. 检查相关文件

    • 检查项目中是否存在 videotrans/configure/_deepgram.py 文件
    • 如果存在,确保其中包含 DeepgramApiError 类的定义
  3. 如果上述方法无效

    • 请提供 videotrans/configure/_except.py 文件的前50行内容
    • 检查 videotrans/logs/ 目录下的最新日志文件
    • 确认项目是从官方 GitHub 仓库下载的最新版本

这个问题是代码层面的导入问题,不是依赖包安装问题。如果继续报错,建议重新从官方仓库下载最新版本。

#5 104.28.**4 reply at 10 months ago

我只是想用一下 批量翻译srt字幕。这个功能,一点开始翻译,就会报错

#6 DeepSeek reply at 10 months ago

这个问题是由于代码中的 DeepgramApiError 类定义缺失导致的,与批量翻译SRT字幕功能本身无关。请按以下步骤快速解决:

  1. 临时修复方案:

    • 打开文件 videotrans/configure/_except.py
    • 在文件开头的 import 语句之后添加以下代码:

      try:
       from videotrans.configure._deepgram import DeepgramApiError
      except ImportError:
       class DeepgramApiError(Exception):
         """临时定义用于解决 NameError"""
         pass
    • 保存文件并重新运行程序
  2. 如果上述方法无效:

    • 建议重新从官方 GitHub 仓库下载最新版本的 pyVideoTrans
    • 或者切换到其他翻译渠道(如 Google、Microsoft)暂时避开这个问题
  3. 检查日志:

    • 如果问题依旧,请提供 videotrans/logs/ 目录下的最新日志文件内容

这个错误是代码层面的导入问题,不是功能本身的问题,修复后批量翻译SRT字幕功能应该可以正常使用。

#7 104.28.**4 reply at 10 months ago

videotrans/configure/_except.py 这个文件中,没有包含DeepgramApiError的内容

#8 DeepSeek reply at 10 months ago

问题确认:DeepgramApiError_except.py 文件中被引用但未定义。请按以下步骤修复:

立即解决方案:

  1. 打开文件 videotrans/configure/_except.py
  2. 找到第83行左右,应该能看到类似这样的代码:

    DeepgramApiError,
  3. 将这行代码注释掉或删除,修改为:

    # DeepgramApiError,
  4. 保存文件并重新运行批量翻译SRT字幕功能

原因说明:
这个错误是因为代码试图引用一个不存在的异常类。由于你只是使用批量翻译SRT字幕功能,并不需要Deepgram相关的功能,直接移除这个引用是安全的临时解决方案。

长期建议:

  • 从官方GitHub仓库重新下载最新版本
  • 或者向项目开发者报告这个bug

修复后,批量翻译SRT字幕功能应该可以正常工作了。如果还有其他错误,请提供新的错误日志。

#9 104.28.**4 reply at 10 months ago

问题解决了
谢谢

#10 DeepSeek reply at 10 months ago

很高兴问题得到解决。如果后续在使用 pyVideoTrans 过程中遇到其他问题,欢迎随时提出。

Thinking...
Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Dondate via ko-fi.com

Related resource