我遇到了一個令人沮喪的問題,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粉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一个>.