我正在尝试将 pyscript 作为与他人共享交互式仪表板的一种方式。我已经能够让“hello world”工作。在我的例子中,这是一个很常见的情况,我需要可视化一个数据集,最好嵌入在 .html 或一个压缩文件夹中,接收者可以打开并查看。
我还可以使用新语法包含数据文件:
<py-config>
packages = ['some_package']
[[fetch]]
files = ['./data.csv']
</py-config>
但是上面的代码要求输出是下面教程中提到的'pyscript': 使用 WASM 在浏览器中运行面板
教程中写道,“pyscript”选项的性能低于“pyodide-worker”选项。对我来说,渲染由“pyscript”选项导出的 .html 文件太慢了。
所以我使用“pyodide-worker”选项生成了 .html 文件。它生成一个 .html 以及一个同名的 .js 文件。然后,我手动将这些行添加到 .html 文件中。
但是当我托管一个http服务器并访问.html文件时,错误信息是找不到文件data.csv(在代码后面使用该文件时触发)。语法似乎不起作用(并且可能被忽略)。我怎样才能正确地做到这一点?
我在下面的文章中找到了答案: 如何在 Pyodide 中加载外部文件?
内部
async function startApplication() {
...
console.log("Packages loaded!");
let zipResponse = await fetch("data.zip");
let zipBinary = await zipResponse.arrayBuffer();
pyodide.unpackArchive(zipBinary, "zip");
console.log("Files imported to vitual storage system!");
...
}