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