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

如何在Flask + Brython应用中正确导入自定义Python模块

问题根因

Brython 运行在客户端浏览器环境,导入自定义 Python 模块时,会通过 HTTP 请求拉取对应 .py 文件的内容。你将 test.py 放在 Flask 的 templates 目录下,该目录是 Flask 的模板渲染专用目录,默认不会对外暴露为静态资源路径,因此 Brython 无法请求到 test.py 文件,导入失败。你之前在服务端根目录加 __init__.py 的操作是服务端 Python 的导入规则,和客户端 Brython 的导入逻辑完全无关,所以不生效。

解决方案

步骤1:调整目录结构

将 Brython 需要导入的自定义模块放到 Flask 默认的静态资源目录 static 下,推荐单独建一个子目录存放,结构如下:

root
├── app.py
├── templates
│   └── index.html
└── static
    └── py_modules  # 专门存放 Brython 端导入的 Python 模块
        ├── __init__.py  # 用于 Brython 识别为包目录,空文件即可
        └── test.py

把你原来的 test.py 移动到 static/py_modules 目录下。

步骤2:修改 index.html 配置

初始化 Brython 时添加 pythonpath 参数,告诉 Brython 自定义模块的拉取路径,仅需修改一处代码:
把 <body onload="brython()"> 改为:

<body onload="brython({pythonpath: ['/static/py_modules']})">

原有 Brython 脚本的导入逻辑不需要修改,保持 import test 即可。

可选验证

启动 Flask 服务后,直接在浏览器地址栏输入 http://127.0.0.1:5000/static/py_modules/test.py,如果能正常显示 test.py 的代码内容,说明路径配置正确,此时刷新页面即可看到 Brython 正常导入模块输出结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:39:03