sqlite PyScript无法打开数据库文件,但可以在Python中工作

fiei3ece  于 2023-08-06  发布在  SQLite
关注(0)|答案(2)|浏览(131)

在我的HTML文档中使用PyScript时,我遇到了一个错误:

JsException(PythonError: Traceback (most recent call last): 
File "/lib/python3.10/site-packages/_pyodide/_base.py", line 429, 
  in eval_code .run(globals, locals) 
File "/lib/python3.10/site-packages/_pyodide/_base.py", line 300, 
  in run coroutine = eval(self.code, globals, locals) 
File "", line 3, 
  in sqlite3.OperationalError: unable to open database file )

字符串
当在Python中运行程序时,它可以工作。我给了所需的文件所有权限(chmod 777),这解决不了任何问题。

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
    <style>
    #Ausgabe {
    background-color: red;
    }
   </style>
   <py-env>
   -sqlite3
   </py-env>
  </head>
  <body>
<main>
 <textarea id="Ausgabe"> </textarea>
</main>
<py-script>
import sqlite3
#opening the database 
connecting= "home/marcel/Schreibtisch/Studium/JustForFun/Betrag.db"
connection = sqlite3.connect(connecting)
cursor = connection.cursor()

#executing the connection and printing each row in the db
sql = "SELECT * FROM personen "
cursor.execute(sql)
connection.commit()
for dsatz in cursor:
    ausgab= dsatz[0] + " " + dsatz[1] + " " + dsatz[2]
    pyscript.write("Ausgabe",ausgab)
connection.close()
</py-script>

  </body>
</html>

eqqqjvef

eqqqjvef1#

Pyscript具有与JavaScript在浏览器中运行时相同的限制。没有本地文件访问,没有套接字,没有试图逃离浏览器沙箱的东西。
在本例中,您尝试直接访问位于本地文件系统上的sqlite3数据库文件。这在浏览器中运行的Pyscript或JavaScript中是不可能的。

ztyzrc3y

ztyzrc3y2#

我找到了这个答案,它对我很有效。
来源:JULIEN'S DATA BLOG

PyScript中的文件和库

去年我在使用PyScript时遇到的一个主要问题是,访问本地或远程文件是多么困难。由于PyScript创建了自己的虚拟运行时,让我的脚本与“外部世界”交互比最初看起来更具挑战性。你可能会问,为什么现在又回到这个主题上来?我最近读到,主要的配置标记的工作方式有了很大的改进,使导入库更容易,并允许用户做一些奇特的事情,如加载本地和远程文件。废话少说,让我们看看PyScript的新标签现在是如何工作的:
由于fetch的配置参数,访问本地文件变得更加容易:

<py-config>
      [[fetch]]
      files = ["./whatever_file_you_want_to_work_with.extension"]
</py-config>

字符串

相关问题