如何在本机执行 pyscript (在网页中执行python)
如何在本机执行 pyscript (在网页中执行python)
pyscript可以让使用者在 H5 的网页中执行 python 的语法,目前只是alpha版本,如果透过官方网站执行,速度会很慢,还有可能因为国外网站的关系,导致无法正常运行,所以建议下载 github 的 pyscript 的原始代码,透过Node.js 进行本地端的安装。
下载 pyscript
- 直接到 pyscript 的github官网下载 https://github.com/pyscript/pyscript
将下载下来 pyscript-main.zip 的压缩档放在一个新建的文件夹中,比方说 localPyScript
安装Node.js
- 下载并安装Node.js,https://nodejs.org/,这部份就不多说了。
安装 rollup 包
- 全局安装 rollup
# 查看当前使用的镜像地址,通常是 https://registry.npmjs.org
npm config get registry
# 将镜像地址切换为淘宝镜像,加快安装速度
npm config set registry https://registry.npm.taobao.org
npm install --global rollup
解压缩 pyscript 项目
- 解压缩 pyscript-main.zip,并切换到 pyscriptjs 文件夹,并进行安装相关套件。
cd pyscriptjs
npm install
执行 node 服务器
- 执行 node 服务器,它会在 examples/build 文件夹中生成需要的 js 与 css 文件
npm run dev
练习用网页
- 建立一个简单的练习用网页 hello_world.html,记得要放在examples 文件夹中,如下图所示。
代码如下,记得设定 pyscript.css 与 pyscript.js 设定为本机端 (http://localhost:8080/build/)。
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1" /><title>PyScript Hello World</title>
<!-- 这里要特别注意,要进行修改的 --><link rel="stylesheet" href="http://localhost:8080/build/pyscript.css" /><script defer src="http://localhost:8080/build/pyscript.js"></script></head><body>Hello world! <br>This is the current date and time, as computed by Python:<py-script>
from datetime import datetime
now = datetime.now()
now.strftime("%m/%d/%Y, %H:%M:%S")</py-script></body>
</html>
修改 pyscript.js,变更 pyodide.js 的存取位置
- 变更 pyodide.js 的存取位置,pyodide是最主要提供能在网页上执行 python 的主要套件,但是因为系统预设使用 https://cdn.jsdelivr.net 這個CDN 服务,但自从 2021 年后 jsdelivr 已经不能在中国内使用,所以需要将存取位置改为 https://pyodide-cdn2.iodide.io。
打开 ./pyscriptjs/examples/build/pyscript.js 文件,修改内容如下,并储存。
const DEFAULT_RUNTIME = {
//src: ‘https://cdn.jsdelivr.net/pyodide/v0.20.0/full/pyodide.js’,
src: ‘https://pyodide-cdn2.iodide.io/v0.20.0/full/pyodide.js’,
name: ‘pyodide-default’,
lang: ‘python’,
};
let appConfig_ = {
autoclose_loader: true,
};
打开网页检视结果
8.打开网页输入 http://localhost:8080/hello_world.html 就可以检视结果了。
最终文件夹说明
pyscript 项目解压缩后的目录结构如下图所示,而我们所有的操作都在 pyscripts 这个文件夹中,当整个服务器运行起来时,是以 pyscripts\examples 为网页服务器的根目录,特别提醒一下,其实 examples 有很多示例可以参考,可以把 examples 中的示例搬到pyscripts\examples,只要修改 pyscript.css 与 pyscript.js 设定为本机端,就可以运行了。
这是内附的范例。
下图是我们这个项目需要修改的文件,pyscript.js 是主要的js执行文件,其中会使用到 pyodide 的功能,所以需要调整网址;hello_world.html 是我们新增的文件,用来展示pyscript的功能。
参考资料
- pyscript,https://pyscript.net/
- PyScript,https://github.com/pyscript/pyscript
如何在本机执行 pyscript (在网页中执行python)相关推荐
- 在网页中撰写Python程式 - 使用pyscript
在网页中撰写Python程式 - 使用pyscript 根据 Anaconda 的项目 pyscript,可以将 python 的代码直接写在网页中,目前只支援两种标签,分别是<py-scrip ...
- 在网页中执行本地exe程序的两种方式
一.有时候,需要在 网页上去执行本地的一个EXE文件,如果用javascript ,一般浏览器,由于安全问题,都会禁止掉这个特性.但经过测试,目前在ie,firefox中仍然可以用JS来实现,但在ch ...
- php的foreach循环执行过程分析以及循环中执行unset()的一些问题
文章目录 一.前言 二.foreach的执行过程 1.关于版本不同的foreach变化 2.关于引用计数 3.探寻foreach的运行过程 三.foreach中执行unset()的问题 1.当我们是为 ...
- python 执行shell 事务_python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- php 执行mysql查询_php中执行mysql的常用操作
连接到mysql服务器: $conn = mysql_connect($host,$user,$password) or die ("连接失败"); mysql_query($co ...
- python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区
Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...
- oracle执行存储过程06576,Oracle中执行存储过程call和exec区别
在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中 ...
- oracle java赋予执行_在oracle中执行java例程
oracle10g的oralceJVM支撑java1.4. 这让我们能用java做一些ps/sql不容易处理的任务,比如访问http资源等.这篇文章写个实例.首先创建java源码,所有method必须 ...
- python中执行sql语句_python中执行sql语句
来源:疯狂的蚂蚁的博客 总结和整理 本文介绍了 Python 操作 MYSQL.执行 SQL 语句.获取结果集.遍历结果集.取得某个字 段.获取表字段名....... (游标 对象)用于执行查询和获取 ...
最新文章
- 浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
- [flex]报错,Resource Path Location Type 源路径条目“… Unknown Flex 问题
- 用Keepalived搭建高可用集群
- winform错误提示 :窗口类名无效(Window class name is not valid)
- NOIP模拟测试11「string·matrix·big」
- 面试官问我:你们的数据库是怎么架构的?
- Linux 建立文件夹的链接
- hibernate分页中跳转到第几页的功能
- C++多重继承时调用相应的父类函数
- 日月如梭,玩转JavaScript日期
- dds通信中间件_车内的中间件协议:是面向服务,还是以数据为中心,或是RESTful?...
- Java简易小说阅读器
- Arcgis操作系列一:shp矢量数据的面积计算
- 【软件测试】时制转换时的电话账单
- Windows 10 让所有程序默认为“以管理员身份运行”并且取消“确认”按钮
- SMCJ系列TVS瞬态抑制二极管型号参数表
- 小程序人脸核验功能实现-边读边录(一)
- [归并排序]leetcode327:区间和的个数(hard)
- 计算机如何删除已连接的打印机驱动程序,怎么删除网上共享的打印机驱动程序...
- 应届毕业生不想应聘上班,一心想独自创业,有什么好的项目推荐?