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

能否通过PyScript执行用户上传的纯内置Python脚本?

支持用PyScript执行无外部依赖的Python脚本

是的,完全支持。PyScript对Python标准库的内置模块(比如os、sys、json、math等)有良好的兼容,只要你的脚本仅依赖这些内置功能,就能直接通过PyScript在浏览器环境中运行。

常见实现方式

  • 直接嵌入固定脚本:将脚本内容写在<py-script>标签内即可执行:

    <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>
          # 仅使用内置功能的示例
          import math
          print(f"圆周率:{math.pi}")
          
          # 内置字符串处理
          demo_str = "Hello PyScript"
          print(f"反转结果:{demo_str[::-1]}")
        </py-script>
      </body>
    </html>
    
  • 处理用户上传的脚本:通过前端获取上传的.py文件内容,调用PyScript的Python环境动态执行:

    <html>
      <head>
        <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
        <script defer src="https://pyscript.net/latest/pyscript.js"></script>
      </head>
      <body>
        <input type="file" id="scriptUpload" accept=".py">
        <button onclick="runUploaded()">执行上传脚本</button>
        <div id="output"></div>
    
        <script>
          async function runUploaded() {
            const file = document.getElementById('scriptUpload').files[0];
            if (!file) return;
    
            const scriptContent = await file.text();
            // 调用Pyodide执行脚本
            const result = await window.pyodide.runPythonAsync(scriptContent);
            document.getElementById('output').textContent = result || "脚本执行完成";
          }
        </script>
      </body>
    </html>
    

关键注意点

  • 浏览器沙箱会限制部分内置模块的功能,比如os模块的文件系统操作无法直接访问本地磁盘,只能操作PyScript的虚拟文件系统。
  • 脚本不能包含系统级权限相关的操作,这类行为会被浏览器拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:45:37