在Windows上的Python中将spatialite扩展加载到sqlite3

fnatzsnv  于 2023-06-06  发布在  SQLite
关注(0)|答案(1)|浏览(297)

我正在尝试在windows上使用python建立一个带有sqlite数据库的应用程序,我需要spatialite扩展。
我下载了mod_spatialite二进制文件。

import os; import sys
import spatialite

spatialite_path = r"folder\with\binaries"
os.environ['PATH'] = spatialite_path + ';' + os.environ['PATH']
sys.path = [spatialite_path] + sys.path

conn = sqlite3.Connection(':memory:')
conn.enable_load_extension(True)
conn.load_extension('mod_spatialite') # fails
conn.load_extension('mod_spatialite.dll') # fails
conn.load_extension(os.path.join(spatialite_path,'mod_spatialite.dll')) #fails
os.chdir(spatialite_path); assert os.path.exists('mod_spatialite.dll'); conn.load_extension('mod_spatialite') # fails

对于所有这些,该过程失败,并且:
操作错误:找不到指定的模块。
Python版本3.10,sqlite3版本2.6,mod_spatialite版本5.0.1。

zpqajqem

zpqajqem1#

尝试手动将spatialite二进制文件的路径添加到PATH环境变量中,而不是通过代码。您可能甚至不需要import spatialite语句。最后,使用第三个选项(conn.load_extension(os.path.join(spatialite_path,'mod_spatialite.dll')))加载扩展。如果不起作用,请尝试提供load_extension方法的实际字符串路径。并确保在添加到PATH后重新启动IDE。
希望这个能帮上忙

相关问题