编辑器与pyodide

const pyodideRef = ref();
const executeResultHandle = async () => {
pyodideRef.value.runPython( ${dataForm.content} );

console.log(pyodideRef.value.globals.get(“excuteValue”))
// Python scope from JavaScript
// const a = pyodideRef.value.globals.get(‘a’).toJs();
// console.log(a)
}

const addFn =async () => {
const pyodide = await loadPyodide();
// await pyodide.loadPackage(“numpy”);
await pyodide.loadPackage(“micropip”);
const micropip = pyodide.pyimport(“micropip”);
await micropip.install(‘numpy’);
await micropip.install(‘pandas’);
pyodideRef.value= pyodide;
// 1.引入外部方法
pyodideRef.value.globals.set(“square”, (x: number) => x*x);

// 2.引入一个模块demofn
await pyodideRef.value.runPythonAsync( from pyodide.http import pyfetch response = await pyfetch("http://192.168.234.1:8001/src/assets/pydemo/demofn.py") with open("demofn.py", "wb") as f: f.write(await response.bytes()) )

// const text = pyodide.globals.get(‘text’).toJs();
// console.log(“afdfd—”,text)
// js执行python
// const demofn = pyodide.pyimport(“demofn”);
// console.log(demofn.do_something(1));
// pyodideRef.value.globals.set(“demofn”, demofn);

dataForm.content = “import demofn\n” + dataForm.content;
}

const fileSystem01 = () => {
pyodideRef.value.runPython( with open("./hello.txt", "w") as fh: fh.write("hello world!") );

let file = pyodideRef.value.FS.readFile(“./hello.txt”, { encoding: “utf8” });
console.log(file); // ==> “hello world!”

let demofnText = pyodideRef.value.FS.readFile(“demofn.py”, { encoding: “utf8” });
console.log(demofnText);

dataForm.content = dataForm.content + “\n” + demofnText;

// const blob = new Blob([pyodideRef.value.globals.get(‘txt’)], {type : ‘application/text’});
// let url = window.URL.createObjectURL(blob);
// window.location.assign(url);
}

/**

  • import numpy as np
    import pandas as pd

frame = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[‘red’,‘blue’,‘yellow’,‘white’],
columns=[‘ball’,‘pen’,‘pencil’,‘paper’])

print(frame)

// 外部的方法square
print(square(3))

// 外部的模块demofn
print(demofn.do_something(2))
*/

watch(()=>dataForm.content, (content:string)=>{
console.log(content)
// testLoadPydide(content);

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值