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

PyScript运行报No module named 'theblockchainapi'错误如何解决

问题原因
  • <py-env>标签位置错误:你把标签写在了</html>整个文档闭合标签的外面,HTML解析器不会识别文档结构外的标签,里面声明的依赖根本不会被PyScript加载。
  • 包兼容性问题:PyScript底层基于Pyodide(浏览器端WASM编译的Python运行时),仅支持纯Python包、或提前编译为WASM适配Pyodide的带C扩展的包。theblockchainapi依赖多个未提供Pyodide适配版本的原生扩展,且没有被Pyodide官方包仓库收录,就算标签位置正确,也无法直接安装到浏览器端Python环境中。
  • 你使用的是非常早期的PyScript Alpha版本,这个版本的依赖加载逻辑本身存在大量已知bug,对第三方包的兼容度极低。
修复方法
  • 第一步先修正HTML结构:把<py-env>标签移动到<head>标签内部,和PyScript的CSS、JS引用放在同级位置,保证解析器能正常读取依赖声明。
  • 不要尝试直接在前端PyScript环境中运行theblockchainapi,这类带原生依赖的Web3 SDK目前没有适配浏览器端WASM Python环境的可行方案,正确实现路径是:
    • 把所有调用theblockchainapi的逻辑部署在你自己的后端Python服务上,封装成普通HTTP接口
    • 前端PyScript代码只负责收集用户输入的钱包地址,通过pyfetch向后端接口发请求,拿到NFT校验结果后渲染到页面即可
  • 如果确实需要纯前端实现相关逻辑,替换theblockchainapi为纯Python实现、无原生C扩展依赖的Solana SDK,再在<py-env>中声明对应包的地址。

修正结构后的基础代码框架如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
    <title>Document</title>
    <!-- py-env必须放在head内部,不能放在html闭合标签外 -->
    <py-env>
        <!-- 仅声明Pyodide源支持的纯Python依赖 -->
    </py-env>
</head>
<body>
    <div>
        <input type="text" id="address"> <br>
        <button id="button">Verify NFT</button>
        <div id="out">none</div>
    </div>
</body>
<py-script>
# 此处编写前端交互、请求后端接口的逻辑,不要直接导入theblockchainapi
</py-script>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:54:40