我正在開發一個使用PyQt + Python的GUI Mac OS X應用程序,它將通過Mac App Store分發。 (不幸的是,我現在沒有Objective-C技能。)我在哪裏可以在Mac OS X上爲Python開發的GUI應用程序保存sqlite數據庫?
該應用程序利用sqlite數據庫來保存用戶輸入,並在稍後的特定時間從sqlite數據庫讀取。這意味着我的應用程序需要sqlite數據庫可讀/寫。
在提交到Mac App Store之前,我的應用程序在我的MacBook Pro上運行良好(我目前與其他應用程序文件依賴關係保持在同一位置)。
因爲我知道蘋果的沙盒不會允許應用程序讀/寫數據(在我的情況下,這意味着sqlite數據庫)的任意。
我的問題是:
由於我使用的PyQt & Python來開發應用程序,在那裏,我怎麼可以複製/保存SQLite的DATEBASE的代碼,同時安裝?
如果我將程序打包到「myapp.app」文件(使用py2app或cxFreeze實用程序),我應該在應用程序包的「Resources」文件夾中放置一個初始sqlite數據庫嗎?如果是這樣,我如何獲得沙箱允許的位置並將數據庫表單「Resources」文件夾複製到允許在我的Python代碼中讀/寫的沙箱允許的位置?
我在網上搜索了很多,因爲我不是一個Objective-C開發人員,我對所有用Objective-C編寫的例子感到困惑。這個任務可以在Python中完成,而無需從Cocoa/Objective-C或其他東西調用API?
我對Mac OS X的開發很新,所以我的問題可能是愚蠢的,對不起。 謝謝。
感謝您的回覆。但我的情況不適合使用QSettings。我保存/讀取/寫入的數據有點複雜,需要幾個表格,很多列......等等。據我所知,像sqlite這樣的數據庫是比QSettings更好的選擇。所以。無論如何,謝謝你們。 – handsomegui
我自己解決了這個問題。我所做的是將一個初始的sqlite數據庫放在我的應用程序包的Resource文件夾中,然後通過代碼將其複製到預定義的路徑中:os.path.expanduser(「〜/ com.company.AppName/data/Documents/「),那麼蘋果的沙箱將把它放在正確的文件夾中。好消息是蘋果批准了我的應用程序。您可以在Mac App Store上以名稱找到它:事件。 – handsomegui