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

如何在Brython中加载本地PersistanceUtils模块?

Brython无法加载根目录Python模块的解决方法

问题核心

你的Flask应用没有暴露根目录下的PersistanceUtils.py供前端访问,导致Brython请求该文件时返回404;同时Flask默认不会主动提供非静态目录下的文件访问权限。

具体解决方法

  • 方法一:移至静态目录并配置Brython路径

    1. 在项目的static目录下新建python文件夹,把PersistanceUtils.py移入该文件夹。
    2. 修改<body>标签的onload属性,给Brython添加模块搜索路径:
      <body onload="brython({paths: {'': '/static/python'}})">
      
    3. 保持原Python导入语句不变即可。
  • 方法二:给Flask添加路由(仅开发环境用)
    在Flask主文件中添加以下路由代码,允许前端访问根目录下的Python模块:

    from flask import send_from_directory
    import os
    
    @app.route('/<path:filename>')
    def serve_module(filename):
        if filename.endswith('.py'):
            return send_from_directory(os.getcwd(), filename)
    

    注意:此方法会暴露所有根目录下的Python文件,存在安全隐患,仅限开发调试使用。

  • 方法三:直接嵌入模块代码
    如果PersistanceUtils.py代码量不大,可以直接把模块的全部代码粘贴到HTML的<script type="text/python">标签中,放在原导入语句之前:

    <script type="text/python">
    # 粘贴PersistanceUtils.py的所有代码
    def get_plot_data2(unique_key):
        # 原模块代码逻辑
        ...
    </script>
    <script type="text/python">
    from PersistanceUtils import *
    energy_list, time_list = PersistanceUtils.get_plot_data2("{{unique_key}}")
    </script>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:56:35