Qpython3、sqlite3可以';无法连接到数据库

Qpython3、sqlite3可以';无法连接到数据库,sqlite,qpython3,Sqlite,Qpython3,我是一个初学者,我只是在android上尝试qpython 我尝试使用sqlite3连接qpython3上的数据库: 我的代码 但它会引发错误,无法打开数据库文件 有什么解决办法吗?? 如果我在pc上尝试,它会自动创建一个数据库(如果不存在的话)它不起作用的原因是QPython程序是从“/”目录运行的,这当然不能写入非root用户。您可以通过从控制台运行以下代码来检查这一点 import os print(os.getcwd()) 如果转到“关于”菜单中的ftp实用程序,您将找到QPython

我是一个初学者,我只是在android上尝试qpython

我尝试使用sqlite3连接qpython3上的数据库: 我的代码

但它会引发错误,无法打开数据库文件

有什么解决办法吗??
如果我在pc上尝试,它会自动创建一个数据库(如果不存在的话)

它不起作用的原因是QPython程序是从“/”目录运行的,这当然不能写入非root用户。您可以通过从控制台运行以下代码来检查这一点

import os
print(os.getcwd())
如果转到“关于”菜单中的
ftp
实用程序,您将找到QPython3正在使用的目录路径。在我的HTC移动设备上,它是:

/storage/emulated/0/com.hipipal.qpyplus
因此,我将您的示例代码更改为:

import os
import sqlite3
RootPath='/storage/emulated/0/com.hipipal.qpyplus'
conn=sqlite3.connect(os.path.join(RootPath,'mydatabase.db'))
这对我来说很好

我还发现有必要提交更改,否则更改将不会写入文件。也就是说,以以下方式结束程序:

conn.commit()
conn.close()

从未使用过android或qpython,但您可能希望检查脚本是否具有写入该文件夹的正确权限。
conn.commit()
conn.close()