OpenSuse 15.3下使用geograpy3报sqlite3无表错误如何解决
报错原因
你遇到的sqlite3.OperationalError: no such table: countries错误,是因为geograpy3安装时不会自动附带所需的地理位置SQLite数据库,需要手动执行初始化操作完成数据库的下载、建表和数据导入。
解决步骤
- 第一步:激活项目对应的venv虚拟环境
OpenSUSE 15.3 下执行命令:source /home/axel/.local/share/virtualenvs/myProject-1oLtBMPc/bin/activate - 第二步:安装nltk依赖的分词数据包
执行命令:geograpy-nltk - 第三步:初始化地理位置数据库
执行命令下载包含countries、regions、cities等表的完整地理数据库:
该过程耗时由网络速度决定,一般需要2-5分钟,执行完成后会自动完成数据库建表和数据写入。python -m geograpy.locator --download - 第四步:重新运行你的测试代码即可正常输出识别到的地理位置信息。
常见异常处理
如果执行数据库下载命令时出现网络超时、路径权限错误,可按以下方案调整:
- 先升级geograpy3到最新版本,避免旧版本的下载路径bug:
pip install --upgrade geograpy3 - 如果手动下载了数据库文件,可在代码运行前手动指定数据库路径:
from geograpy.locator import Locator # 重置已有连接 Locator.reset() # 替换为你的数据库文件实际存储路径 Locator.set_db_path("/home/axel/custom_path/locations.db")
内容的提问来源于stack exchange,提问作者axle
相关产品推荐
相关产品推荐

