首页  >  问答  >  正文

Pyscript说没有目录但是有

我遇到了一个令人沮丧的问题,pyscript 说该目录不存在。但确实如此。我有一个名为“pot1”的文件,pyscript 似乎没有看到它。 我已经重写了超过893次目录,并且尝试查找问题,我已经正确地将目录写入文件。

<py-script>
    pot1 = open("C:/Plant Lab/sav/garden/pots/pot1", "r").readline()
</py-script>

但我只得到这个。

Traceback (most recent call last):
  File "/lib/python3.10/_pyodide/_base.py", line 460, in eval_code
    .run(globals, locals)
  File "/lib/python3.10/_pyodide/_base.py", line 306, in run
    coroutine = eval(self.code, globals, locals)
  File "<exec>", line 1, in <module>
FileNotFoundError: [Errno 44] No such file or directory: 'C:/Plant Lab/sav/garden/pots/pot1'

我尝试在谷歌上搜索,但最终只得到了非常基本的答案,例如“你正确地编写了目录吗?”,我不知道还能做什么。我尝试过使用 \ 而不是 /。尝试找出它是什么目录,但 CORS 不允许我这样做。与此同时,我会一次又一次地尝试。

P粉170858678P粉170858678282 天前412

全部回复(1)我来回复

  • P粉366946380

    P粉3669463802024-01-11 10:13:21

    使用 pyscript 时,代码在虚拟文件系统中运行。如果你运行

    <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 os;print(os.getcwd())</py-script>
      </body>
    </html>

    您应该获得/home/pyodide,这是该虚拟文件系统的根目录。您的文件夹和文件无法通过该虚拟系统直接访问(这是 Javascript 应用程序的限制)。

    从文件系统访问数据的最简单方法是使用 标记来获取文件(更多信息此处)。

    <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-config> 
          [[fetch]] 
          files = ["/path/to/your/file"] </py-config>
        <py-script>
          pot1 = open("/path/to/your/file", "r").readline()
          print(pot1)
        </py-script>
      </body>
    </html>

    如果您像这样更新文件并尝试访问它,您仍然会遇到错误。这是因为 fetch 方法通常用于从远程服务器加载内容,但在您的情况下,您可以通过运行来运行一个简单的 python Web 服务器

    python3 -m http.server

    然后访问您的页面 http://0.0.0.0:8000/yourfile.html.

    回复
    0
  • 取消回复