recherche

Maison  >  Questions et réponses  >  le corps du texte

Pyscript dit qu'il n'y a pas de répertoire mais il y en a

J'ai rencontré un problème frustrant où pyscript disait que le répertoire n'existait pas. Mais il est. J'ai un fichier appelé "pot1" et pyscript ne semble pas le voir. J'ai réécrit le répertoire plus de 893 fois et en essayant de trouver le problème, le répertoire est correctement écrit dans le fichier.

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

Mais je n’ai eu que ça.

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'

J'ai essayé de chercher sur Google mais j'ai fini par obtenir des réponses très basiques comme « Avez-vous écrit correctement la table des matières et je ne savais pas quoi faire d'autre ? J'ai essayé d'utiliser à la place de /. J'essaie de savoir de quel répertoire il s'agit mais CORS ne me laisse pas faire ça. En attendant, je vais essayer encore et encore.

P粉170858678P粉170858678408 Il y a quelques jours492

répondre à tous(1)je répondrai

  • P粉366946380

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

    Lors de l'utilisation de pyscript, le code s'exécute dans un système de fichiers virtuel. Si tu cours

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

    Vous devriez obtenir /home/pyodide, qui est le répertoire racine de ce système de fichiers virtuel. Vos dossiers et fichiers ne sont pas directement accessibles via ce système virtuel (il s'agit d'une limitation des applications Javascript).

    Le moyen le plus simple d'accéder aux données du système de fichiers est d'utiliser la balise pour obtenir le fichier (plus d'informations ici).

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

    Si vous mettez à jour le fichier comme ceci et essayez d'y accéder, vous obtiendrez toujours l'erreur. En effet, la méthode fetch est généralement utilisée pour charger du contenu à partir d'un serveur distant, mais dans votre cas, vous pouvez exécuter un simple serveur Web Python en exécutant

    python3 -m http.server

    Alors visitez votre page http://0.0.0.0:8000/yourfile.html.

    répondre
    0
  • Annulerrépondre