2017-02-28 155 views
1

我是初學者,我只是嘗試qpython的android。Qpython3,sqlite3無法連接到數據庫

我嘗試使用sqlite3的在qpython3連接數據庫: 我的代碼

import sqlite3 
conn=sqlite3.connect('mydatabase.db') 

但它會引發錯誤,無法打開數據庫文件。

任何解決方案?? 如果我嘗試在PC上,它會自動創建一個數據庫,如果不存在

+0

沒有用過Android的既不也不qpython但你可能要檢查,如果你的腳本有正確的權限寫入到該文件夾​​。 – marmeladze

回答

0

它不起作用的原因是,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()