Ошибка Sqlite load_extension для Spatialite в Python

Я пытаюсь использовать бета-версию Spatialite 3.0, потому что использую Windows 7 на 64-битной машине.

Я постоянно получаю ужасную sqlite3.OperationalError: The указанный модуль не может быть найден. ошибка при попытке загрузки libspatialite-4.dll .

Я пробовал следующее:

  • поместите libspatialite-4.dll и все остальные библиотеки DLL в ту же папку
  • используйте полный путь к библиотекам dll
  • добавьте расположение dll в переменную среды 'PATH'
  • добавьте расположение dll к атрибуту sys.path как часть кода Python
  • , скопируйте все библиотеки dll в c: \ windows \ system32 Папка (вместе с перезапуском машины)
  • скопируйте все dll в папку c: \ windows \ sysWoW64 (вместе с перезагрузкой машины это должно быть для 32-битных dll но я все равно пробовал)

мой код выглядит следующим образом:

import sqlite3
conn = sqlite3.connect(":memory:")
conn.enable_load_extension(True)
conn.execute('SELECT load_extension("libspatialite-4.dll")')

ПРИМЕЧАНИЕ - Я тоже пробовал полный путь, но безуспешно. Я помню, как такая же проблема с Windows XP 32-бит. У меня это работает, но не могу помните, что я сделал: (

ОБНОВЛЕНИЕ

Я протестировал установку на 32-битной Windows 7, и размещение всех dll в папке System32 работает. Таким образом, это говорит о том, что есть некоторая проблема с 64-битной установкой .Может быть, мне нужна другая версия MSVC (я не думаю, что на веб-сайте Spatialite сказано, что это необходимо, поэтому мне, возможно, придется угадать - у меня установлен MSVC2010)?

10
задан Denis Otkidach 27 December 2011 в 08:34
поделиться