我设法在浏览器中运行 Pyodide。我创建了hello.txt文件。但我怎样才能访问它。
Pyodide
https://github.com/iodide-project/pyodide/blob/master/docs/using_pyodide_from_javascript.md
pyodide.runPython('open("hello.txt", "w")')
Run Code Online (Sandbox Code Playgroud)
我在 chrome devtools 中尝试了什么?
pyodide.runPython('os.chdir("../")')
pyodide.runPython('os.listdir()')
pyodide.runPython('os.path.realpath("hello.txt")')
Run Code Online (Sandbox Code Playgroud)
输出为listdir
["hello.txt", "lib", "proc", "dev", "home", "tmp"]
Run Code Online (Sandbox Code Playgroud)
输出为realpath
"/hello.txt"
Run Code Online (Sandbox Code Playgroud)
还,
pyodide.runPython('import platform')
pyodide.runPython('platform.platform()')
Run Code Online (Sandbox Code Playgroud)
输出
"Emscripten-1.0-x86-JS-32bit"
Run Code Online (Sandbox Code Playgroud)
chrome devtools 控制台中的所有输出。
它是在根文件夹中创建的。但是如何在文件资源管理器中访问它或如何将文件复制到下载文件夹?
谢谢
我最近遇到了Pyodide项目。
我已经使用Pyodide构建了一个小样,但是尽管我花了很多时间来查看源代码,但是对我来说,如何重定向printpython的输出(除了修改CPython源代码之外)还不是很明显(而且)。,如何将输出从matplotlib.pyplot重定向到浏览器。
从源代码来看,FigureCanvasWasm确实有一个show()带有适当后端的方法可以绘制到浏览器画布上-但是,我不清楚如何实例化此类并调用它的show()方法,或者是否还有另一种更明显的重定向方式画到画布上。
因此,我的问题是:
print()消息这是我的测试页:
<!doctype html>
<meta charset="utf-8">
<html lang="en">
<html>
<head>
<title>Demo</title>
<script src="../../pyodide/build/pyodide.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
languagePluginLoader.then(() => {
pyodide.loadPackage(['matplotlib']).then(() => {
pyodide.runPython(`
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
#fig = plt.gcf()
#fig.savefig(imgdata, format='png')
print('Done from python!')`
);
//var image = pyodide.pyimport('imgdata');
//console.log(image);
});});
</script>
<html>
Run Code Online (Sandbox Code Playgroud) 在 pyodide 中,它不支持 requests 模块,因此要从 api 获取数据,我们使用 open_url 以及如何使用 api 使用 pyodide 发布数据
每当我在 pyodide 中导入 python 模块时,都会出现此错误。
pyodide.js:108 Invalid package name or URI
Run Code Online (Sandbox Code Playgroud)
我不确定如何正确导入模块,我已经尝试过文档中提到的这一点。
pyodide.loadPackage('<module address>')
Run Code Online (Sandbox Code Playgroud)
(这会返回一个关于我运行此方法的决议的承诺)
pyodide.runPython('
<python code here>
')
Run Code Online (Sandbox Code Playgroud)
执行后,我收到上述错误。
JavaScript 代码:
<html>
<head>
<script type="text/javascript">
// set the pyodide files URL (packages.json, pyodide.asm.data etc)
window.languagePluginUrl = 'https://pyodide-cdn2.iodide.io/v0.15.0/full/';
</script>
<script src="https://pyodide-cdn2.iodide.io/v0.15.0/full/pyodide.js"></script>
</head>
<body>
Pyodide test page <br>
Open your browser console to see pyodide output
<script type="text/javascript">
languagePluginLoader.then(function () {
pyodide.loadPackage('<address>').then(() => {
console.log(pyodide.runPython('
import sys
from <my package> import *
sys.version
'));
console.log(pyodide.runPython('print(1 + 2)'));
});
});
</script> …Run Code Online (Sandbox Code Playgroud) 有什么办法可以在pyodide中运行python库pytorch吗?我尝试使用 micropip 安装 pytorch,但它给出了以下错误消息:
找不到“pytorch”的纯 Python 3 轮子
有什么办法可以在 github 页面中运行 python 吗?特别是通过Pyodide,因为我正在使用 pandas。我知道 github 页面仅用于使用 HTML/CSS/JS 提供静态页面,但我想知道 pyodide 是否有解决方法,因为它是用 Javascript 编译的。
我正在尝试构建一个小型 Web 应用程序,它有一个用户名输入框,一旦提交,就会从 API 调用一些数据,在 pandas 中处理并显示一些可视化效果(使用 Chart.js 或 Zingcharts 等 JS 库,或者使用 matplotlib /西博恩)
我想要运行函数来阻止表的每一行。我想在加载 HTML 代码后执行此操作,我尝试这样做
<body>
<script
type="text/javascript"
src="https://cdn.jsdelivr.net/pyodide/dev/full/pyodide.js"
></script>
<script type="text/javascript">
async function main(kw) {
let pyodide = await loadPyodide({
indexURL: "https://cdn.jsdelivr.net/pyodide/dev/full/",
});
pyodide.globals.set("mikw", kw);
await pyodide.loadPackage("micropip");
await pyodide.runPythonAsync(`
import micropip
import js
await micropip.install('snowballstemmer')
import snowballstemmer
stemmer = snowballstemmer.stemmer('english')
div = js.document.createElement("div")
div.innerHTML = stemmer.stemWords('Hello this my default text '.split())
js.document.body.prepend(div)
varP = js.document.getElementById('origen').textContent
print(varP)
salida = stemmer.stemWords(varP.split())
print(salida)
divSalida = js.document.createElement("div")
div.innerHTML =salida
salida = stemmer.stemWords(mikw.split())
print(salida)
`);
}
main('This are the second text, I put this text on …Run Code Online (Sandbox Code Playgroud) pyodide ×7
python ×6
javascript ×2
webassembly ×2
emscripten ×1
github-pages ×1
matplotlib ×1
pytorch ×1