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

OpenEdX Palm版本XBlock开发中自定义Django应用导入错误

解决Open edX XBlock导入自定义Django应用的模块找不到问题

核心问题分析

报错ModuleNotFoundError: No module named 'openedx.features.video_rating'说明XBlock的运行环境无法识别自定义Django应用的模块路径,即便该应用在Open edX主环境中正常运行。以下是针对性的修复步骤:

1. 验证模块导入路径

  • 若video_rating是作为独立Django应用安装,尝试简化导入路径,去掉openedx.features前缀:
    from video_rating.models import UserFeedbackSave, Questions, Type, Ratings
    
  • 若应用确实放在openedx/features目录下,先检查该目录是否在Python的搜索路径中。可在XBlock代码开头添加调试代码确认:
    import sys
    print(sys.path) # 查看输出是否包含`openedx`所在的上级目录
    
    若路径缺失,可手动添加:
    import sys
    sys.path.append("/path/to/openedx") # 替换为实际的openedx根目录路径
    

2. 确保XBlock与Open edX共享运行环境

  • 避免将XBlock安装到独立的Python环境,需使用Open edX的虚拟环境安装:
    source /edx/app/edxapp/edxapp_env
    pip install -e /path/to/your/onlineoffline-xblock
    
    使用-e参数以可编辑模式安装,确保代码修改能实时生效。

3. 检查Django应用的包结构

  • 确认video_rating及其上级目录包含__init__.py文件,保证Python将其识别为合法包:
    openedx/
      features/
        __init__.py
        video_rating/
          __init__.py
          models.py
          # 其他应用文件
    

4. 重启Open edX服务

修改配置或路径后,必须重启LMS和CMS服务使变更生效:

sudo /edx/bin/supervisorctl restart lms cms

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:12