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

如何在Brython中安装外部模块,requests模块导入失败如何解决

问题根因

你无法在Brython中直接导入常规CPython生态的requests模块,核心原因是requests底层依赖操作系统套接字接口,而Brython运行在浏览器沙箱环境中,没有对应底层接口支持,标准库也没有内置适配浏览器环境的requests实现。

requests功能替代方案

Brython内置了适配浏览器XMLHttpRequest/fetch API的网络请求模块browser.ajax,可以完全替代requests实现网络请求功能,可直接使用,示例代码如下:

<html>
    <head>
        <script src="https://cdn.jsdelivr.net/npm/brython@3.8.10/brython.min.js"> </script> 
        <script src="https://cdn.jsdelivr.net/npm/brython@3.8.10/brython_stdlib.js"></script>
    </head>
    <body onload="brython()">
        <script type="text/python">
            from browser import ajax, document, alert

            def on_complete(req):
                if req.status == 200 or req.status == 0:
                    alert(req.text)
                    # 可将返回内容赋值给输入框
                    document["zone"].value = req.text
                else:
                    alert("请求错误:" + req.statusText)

            def send_request(e):
                # 发起GET请求示例
                ajax.get("目标请求地址", oncomplete=on_complete)
                # 发起POST请求示例语法
                # ajax.post("目标请求地址", data={"参数名":"参数值"}, oncomplete=on_complete)

            document["mybutton"].bind("click", send_request)
        </script>
        <input id="zone"><button id="mybutton">click !</button>
   </body>
</html>

Brython安装外部模块的通用方法

如果是适配了Brython运行环境的第三方模块,可通过以下三种方式安装导入:

  • 方式1:如果模块已被收录到Brython标准库扩展,直接在导入模块前调用browser.install方法指定需要安装的模块名即可
  • 方式2:如果是自定义模块,将.py模块文件上传到你的站点静态资源目录,Brython会自动按照导入路径加载对应的模块文件
  • 方式3:如果是纯Python实现且不依赖CPython专属底层接口(如socket、系统级os调用等)的第三方模块,可通过brython-cli add-module命令将模块打包后引入到你的项目中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:48:02