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

Pyodide(v0.23.2)无法安装/导入模块问题求助

问题原因及解决方案

核心问题

你同时手动加载了独立的Pyodide环境,又使用了PyScript的内置环境,两者完全隔离,导致<py-script>里的代码无法访问手动安装的依赖;另外<py-env>里的依赖声明有误。

修复步骤

  • 移除手动加载Pyodide的JavaScript代码块,PyScript已经内置了Pyodide,无需重复加载
  • 修改<py-env>,将matplotlib.pyplot改为matplotlib(PyScript会自动处理子模块导入)
  • 调整图表展示逻辑,PyScript中需要用display()配合plt.savefig()来渲染图表(直接plt.show()无法在网页中显示)

修正后的完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
    <meta charset="utf-8" />
    <title>PyScript Demo</title>
</head>
<body>
    <py-env>
      - pandas
      - matplotlib
    </py-env>
    <h1>Hello, Geeks</h1>
    <div id="chart"></div>
    <py-script>
        import pandas as pd
        import matplotlib.pyplot as plt
        import io
        from pyscript import display

        df = pd.DataFrame([['g1', 'c1', 10], ['g1', 'c2', 12], ['g1', 'c3', 13], ['g2', 'c1', 8],
                   ['g2', 'c2', 10], ['g2', 'c3', 12]], columns=['group', 'column', 'val'])

        pivot_df = df.pivot(index="column", columns="group", values="val")
        pivot_df.plot(kind='bar')

        # 将图表保存为BytesIO对象并展示到指定div
        img_buf = io.BytesIO()
        plt.savefig(img_buf, format='png')
        img_buf.seek(0)
        display(img_buf, target="chart")
        plt.close()
    </py-script>
</body>
</html>

额外说明

  • PyScript的<py-env>会自动处理依赖安装,无需手动调用micropip或loadPackage
  • 图表需要通过display()方法挂载到网页元素上,指定target参数对应HTML中的div ID即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:02:36