dimanche 18 octobre 2015

Can one use, or how to avoid using, a colon (":") as the start of a path to an sqlite database

I am creating a plugin for QGIS (QGIS Plugin Builder). The relative paths to the plugin directory need to start with a colon. The icon for example is loaded like this:

icon_path = ':/plugins/into_sqlite/icon.png'

When I try to do the same for the sqlite database the database fails to load:

connection = sqlite3.connect(":/plugins/PLUGINNAME/database.sqlite")
OperationalError: unable to open database file

But when I try the same giving the absolute path it works:

connection = sqlite3.connect("/home/USERNAME/.qgis/python/plugins/PLUGINNAME/database.sqlite")
OperationalError: unable to open database file

I think that the problem is that the path starts with a colon and sqlite uses the colon as a special character to for example load a database in memore:

connection = sqlite3.connect(":memory:")

But I need to use realtive paths. How can I supply the path and escape the colon or start the path without the colon?

Aucun commentaire:

Enregistrer un commentaire