如何在PyScript中使用编译后的pyd格式Python文件及对应调用代码在浏览器运行?
如何在PyScript中使用编译后的pyd格式Python文件及对应调用代码在浏览器运行?
嘿,我来帮你解决这个问题~首先得明确一个关键点:你手里的somme.pyd是Windows平台专属的编译Python扩展模块,它依赖Windows本地的系统环境和Python运行时,而PyScript是基于浏览器里的WebAssembly环境(Pyodide)运行的,这俩环境完全不兼容,所以没法直接加载pyd文件哦。
不过别担心,我们有两种简单的替代方案,能达到你想要的在浏览器里运行代码的效果:
方法一:直接嵌入纯Python代码(最省心)
既然你的sm函数只是计算两数之和,逻辑很简单,直接把函数的源码写到PyScript里就行,完全不需要编译后的pyd文件。
你可以创建一个HTML文件,内容如下:
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" /> <script defer src="https://pyscript.net/latest/pyscript.js"></script> </head> <body> <py-script> # 直接定义原来sm函数的逻辑 def sm(a, b): return a + b # 像你原来的main.py那样调用函数 result = sm(400, 1473) print(f"计算结果:{result}") </py-script> </body> </html>
把这个文件保存后,直接用浏览器打开,就能看到控制台输出计算结果啦。
方法二:用纯Python模块模拟原来的import结构
如果你想保留import somme这种调用方式,可以把函数单独放到一个纯Python文件里,再用PyScript加载这个模块:
- 先创建
somme.py文件,内容就是你的函数源码:
def sm(a, b): return a + b
- 再创建一个HTML文件(比如
index.html),内容如下:
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" /> <script defer src="https://pyscript.net/latest/pyscript.js"></script> </head> <body> <py-env> - paths: - ./somme.py </py-env> <py-script> # 和你原来的main.py一样的调用方式 import somme result = somme.sm(400, 1473) print(f"计算结果:{result}") </py-script> </body> </html>
把somme.py和index.html放在同一个文件夹里,用浏览器打开index.html就能正常运行啦。
简单来说,PyScript目前只支持纯Python代码或者WebAssembly兼容的编译模块,本地的pyd文件是没法直接用的,用上面两种纯Python的方式就能完美替代你的需求啦。
备注:内容来源于stack exchange,提问作者mlri
相关产品推荐
相关产品推荐

