Bug report #5983
import Qgis-Layer to spatialite db via db Manager and Qspatialite is broken
| Status: | Closed | ||
|---|---|---|---|
| Priority: | Normal | ||
| Assignee: | - | ||
| Category: | DB Manager | ||
| Affected QGIS version: | 1.8.0 | Regression?: | No |
| Operating System: | win | Easy fix?: | No |
| Pull Request or Patch supplied: | No | Resolution: | fixed |
| Crashes QGIS or corrupts data: | No | Copied to github as #: | 15398 |
Description
Import a QGis-Layer in dB manager via drag and drop is broken.
The import via Qspatialite reports the following errors and freeze mouse sandclock :
Fehler bei der Ausführung von Python-Code:
Traceback (most recent call last):
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\importQgis\\importQgis.py", line 64, in run
if not self.parent.db.uploadQgisVectorLayer(layer, tableName=self.tablenames[i], srid=self.srid, selected=self.selected):
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\Classes\\Database.py", line 253, in uploadQgisVectorLayer
cursor.execute("""INSERT INTO "%s" VALUES (%s,%s)"""%(tableName,','.join([unicode(value).encode('utf-8') for value in values_auto]),','.join('?'*len(values_perso))),tuple([unicode(value) for value in values_perso]))
OperationalError: no such function: CastToMulti
Python-Version:
2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
QGIS-Version:
1.8.0-Lisboa Lisboa, 6416f38
Python-Pfad: ['C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\\\sextante', 'C:/PROGRA~1/Quantum GIS Lisboa/apps/qgis/./python', 'C:/Dokumente und Einstellungen/gerhard/.qgis//python', 'C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins', 'C:/PROGRA~1/Quantum GIS Lisboa/apps/qgis/./python/plugins', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\bin\\\\python27.zip', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\DLLs', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\plat-win', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\lib-tk', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\qgis\\\\bin', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\site-packages', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\PIL', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32\\\\lib', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\Pythonwin', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\wx-2.8-msw-unicode', 'C:\\\\Dokumente und Einstellungen\\\\gerhard\\\\.qgis\\\\python\\\\plugins\\\\mmqgis/forms', '/usr/share/qgis/python', 'C:\\\\PROGRA~1\\\\Quantum GIS Lisboa\\\\apps\\\\qgis\\\\python\\\\plugins\\\\fTools\\\\tools']
History
#1
Updated by Jürgen Fischer over 13 years ago
pyspatialite in the standalone installer uses and old internal version of spatialite. Please try the OSGeo4W version, which has spatialite 3.0.1.
#2
Updated by Giovanni Manghi over 13 years ago
- Status changed from Open to Feedback
#3
Updated by Gerhard Spieles over 13 years ago
Installed QGIS 1.8.0.3 and dev from OSGeo4W. Starting QGIS, popup window reports following messages. DBManager window is empty an qspatialite is not available.
Konnte Erweiterung QspatiaLite nicht laden wegen eines Fehler beim Aufruf seiner classFactory()-Methode
Traceback (most recent call last):
File "C:/OSGeo4W/apps/qgis-dev/./python\\qgis\\utils.py", line 164, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\__init__.py", line 34, in classFactory
from qspatialite import QspatiaLite
File "C:/OSGeo4W/apps/qgis-dev/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\qspatialite.py", line 29, in
from QspatiaLiteApp import QspatiaLiteApp
File "C:/OSGeo4W/apps/qgis-dev/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\QspatiaLiteApp.py", line 27, in
from Classes.Database import *
File "C:/OSGeo4W/apps/qgis-dev/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\Classes\\Database.py", line 1, in
from pyspatialite import dbapi2 as sqlite #Load PySpatiaLite
File "C:/OSGeo4W/apps/qgis-dev/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/OSGeo4W/apps/qgis-dev/./python\\pyspatialite\\dbapi2.py", line 27, in
File "C:/OSGeo4W/apps/qgis-dev/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named _spatialite
Python-Version:
2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
QGIS-Version:
1.9.0-Master Master, cbde7d4
Python-Pfad: ['C:/OSGeo4W/apps/qgis-dev/./python', 'C:/Dokumente und Einstellungen/gerhard/.qgis//python', 'C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins', 'C:/OSGeo4W/apps/qgis-dev/./python/plugins', 'C:\\\\OSGeo4W\\\\bin\\\\python27.zip', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\DLLs', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\plat-win', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\lib-tk', 'C:\\\\OSGeo4W\\\\bin', 'C:\\\\OSGeo4W\\\\apps\\\\Python27', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\PIL', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32\\\\lib', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\Pythonwin', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\wx-2.8-msw-unicode', 'C:\\\\Dokumente und Einstellungen\\\\gerhard\\\\.qgis\\\\python\\\\plugins\\\\mmqgis/forms', '/usr/share/qgis/python']
#4
Updated by Jürgen Fischer over 13 years ago
gespiel - wrote:
Installed QGIS 1.8.0.3 and dev from OSGeo4W. Starting QGIS, popup window reports following messages. DBManager window is empty an qspatialite is not available.
[...]
Hm, looks like you're running qgis-dev and not qgis-1.8.0-3 and a version of qgis-dev that still includes and internal copy of pyspatialite - which the current version doesn't.
#5
Updated by Gerhard Spieles over 13 years ago
QGIS 1.8.0.3 from OSGeo4W produce the same result.
Konnte Erweiterung QspatiaLite nicht laden wegen eines Fehler beim Aufruf seiner classFactory()-Methode
Traceback (most recent call last):
File "C:/OSGeo4W/apps/qgis/./python\\qgis\\utils.py", line 164, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\__init__.py", line 34, in classFactory
from qspatialite import QspatiaLite
File "C:/OSGeo4W/apps/qgis/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\qspatialite.py", line 29, in
from QspatiaLiteApp import QspatiaLiteApp
File "C:/OSGeo4W/apps/qgis/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\QspatiaLiteApp.py", line 27, in
from Classes.Database import *
File "C:/OSGeo4W/apps/qgis/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins\\QspatiaLite\\Classes\\Database.py", line 1, in
from pyspatialite import dbapi2 as sqlite #Load PySpatiaLite
File "C:/OSGeo4W/apps/qgis/./python\\qgis\\utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named pyspatialite
Python-Version:
2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
QGIS-Version:
1.8.0-Lisboa Lisboa, 6416f38
Python-Pfad: ['C:/OSGeo4W/apps/qgis/./python', 'C:/Dokumente und Einstellungen/gerhard/.qgis//python', 'C:/Dokumente und Einstellungen/gerhard/.qgis//python/plugins', 'C:/OSGeo4W/apps/qgis/./python/plugins', 'C:\\\\OSGeo4W\\\\bin\\\\python27.zip', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\DLLs', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\plat-win', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\lib-tk', 'C:\\\\OSGeo4W\\\\apps\\\\qgis\\\\bin', 'C:\\\\OSGeo4W\\\\apps\\\\Python27', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\PIL', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\win32\\\\lib', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\Pythonwin', 'C:\\\\OSGeo4W\\\\apps\\\\Python27\\\\lib\\\\site-packages\\\\wx-2.8-msw-unicode', 'C:\\\\Dokumente und Einstellungen\\\\gerhard\\\\.qgis\\\\python\\\\plugins\\\\mmqgis/forms', '/usr/share/qgis/python']
#6
Updated by Jürgen Fischer over 13 years ago
gespiel - wrote:
QGIS 1.8.0.3 from OSGeo4W produce the same result.
[...]
not quite. It didn't find pyspatialite this time - not the old version. Is the pyspatialite package installed?
#7
Updated by Gerhard Spieles over 13 years ago
- File dbmanager_statuspanel_postgis_no_module.jpg added
Have just updated from OSGeo4W pyspatial 2.3.1-3. Startupmessages dissapear in 1.8.0.3 and import in qspatial works.
Thanks
In db Manager, drag and drop a shp-layer from Qgis to spatiallite is further not possible.
In the status panel, dbmager reports: "postgis: No module named psycopg2" (see attached jpg)
#8
Updated by Jürgen Fischer over 13 years ago
gespiel - wrote:
Have just updated from OSGeo4W pyspatial 2.3.1-3. Startupmessages dissapear in 1.8.0.3 and import in qspatial works.
ThanksIn db Manager, drag and drop a shp-layer from Qgis to spatiallite is further not possible.
In the status panel, dbmager reports: "postgis: No module named psycopg2" (see attached jpg)
retry the upgrade please - pyspatialite and psycopg2 should be a dependency of qgis now (before dbmanager inclusion both were optional and only installed with qgis-full - that's why the standalone installer made from qgis-full has both).
#9
Updated by Giuseppe Sucameli over 13 years ago
In db Manager, drag and drop a shp-layer from Qgis to spatiallite is further not possible.
In the status panel, dbmager reports: "postgis: No module named psycopg2" (see attached jpg)
DBManager should work even if one of psycopg2 or pyspatialite is missing, so the problem you get importing a shape shouldn't depend on the message displayed on the status bar.
A message box with the error should be displayed when the import fails. If so, could you report the error in a new ticket, please?
If instead it works after installing psycopg2, please report here.
#10
Updated by Gerhard Spieles over 13 years ago
have installed the latest osgeo4w package. Postgissymbol appears in db manager and statusbar is clean. (see attached jpg)
Drag and drop shp-layer into spatialite db in dbmanager window is further not possible.
Mousepointer change form to stop-marker, while trying to drop it in db-manager window.
#11
Updated by Giovanni Manghi over 13 years ago
Mousepointer change form to stop-marker, while trying to drop it in db-manager window.
drag and drop muste be done from within the qgis browser, it doesn't work from the TOC. Just to be sure you are doing the right way. Cheers!
#12
Updated by Gerhard Spieles over 13 years ago
- Resolution set to fixed
- Status changed from Feedback to Closed
Yes, all works fine. A lot of thanks for your work.
Best regards
Gerhard