Heim  >  Fragen und Antworten  >  Hauptteil

Pyscript sagt, dass es kein Verzeichnis gibt, aber es gibt eins

Ich bin auf ein frustrierendes Problem gestoßen, bei dem Pyscript sagte, dass das Verzeichnis nicht existierte. Aber es ist. Ich habe eine Datei namens „pot1“ und Pyscript scheint sie nicht zu sehen. Ich habe das Verzeichnis über 893 Mal neu geschrieben und beim Versuch, das Problem zu finden, habe ich das Verzeichnis korrekt in die Datei geschrieben.

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

Aber ich habe nur das bekommen.

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'

Ich habe versucht, bei Google zu suchen, bekam aber am Ende sehr einfache Antworten wie „Haben Sie das Inhaltsverzeichnis richtig geschrieben?“ und wussten nicht, was ich sonst tun sollte. Ich habe versucht, anstelle von / zu verwenden. Ich habe versucht herauszufinden, um welches Verzeichnis es sich handelt, aber CORS erlaubt mir das nicht. In der Zwischenzeit werde ich es immer wieder versuchen.

P粉170858678P粉170858678282 Tage vor405

Antworte allen(1)Ich werde antworten

  • 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.

    Antwort
    0
  • StornierenAntwort