postgresql - Geodjango导入django.contrib.gis.gdal时出现异常: OSError:/usr/lib/libgdal. so.1: undefined symbol :sqlite3_column_table_name

标签 postgresql postgis conda geodjango

我已关注tutorial用于在我的 Ubuntu 14.04 上安装 Geodjango。我正在使用 Django 1.10 和 Python 3.5、postgres-9.6 和 postgis 2.3。

我查过herehere ,但没有找到解决办法。 在新安装的 ubuntu 14.04 虚拟机中,它可以工作。

但是在我的安装中,当我尝试进行迁移时,我得到: OSError:/usr/lib/libgdal.so.1: undefined symbol :sqlite3_column_table_name

进一步调查,我简单地尝试了:

from django.contrib.gis import gdal

得到:

Traceback (most recent call last):   
File "<stdin>", line 1, in <module>   
File "/home/pv/anaconda3/envs/dj110py35/lib/python3.5/site-packages/django/contrib/gis/gdal/__init__.py", line 49, in <module>
    from django.contrib.gis.gdal.driver import Driver  # NOQA   
File "/home/pv/anaconda3/envs/dj110py35/lib/python3.5/site-packages/django/contrib/gis/gdal/driver.py", line 5, in <module>
    from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi   
File "/home/pv/anaconda3/envs/dj110py35/lib/python3.5/site-packages/django/contrib/gis/gdal/prototypes/ds.py", line 9, in <module>
    from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal   
File "/home/pv/anaconda3/envs/dj110py35/lib/python3.5/site-packages/django/contrib/gis/gdal/libgdal.py", line 48, in <module>
    lgdal = CDLL(lib_path)   
File "/home/pv/anaconda3/envs/dj110py35/lib/python3.5/ctypes/__init__.py", line 347, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/libgdal.so.1: undefined symbol: sqlite3_column_table_name

对于如何修复我的设置有什么建议吗?

更新

这似乎是我的 conda 环境的问题。当我开始使用 pip virtualenv 时,问题不再出现。我没有回答这个问题,因为我找不到解决方案,只有解决方法。但是使用 pip virtualenv 重建环境是可行的

最佳答案

在conda环境中:conda install -c conda-forge gdal=2.2.1

在 django settings.py 中: GDAL_LIBRARY_PATH = '<HOME>/anaconda3/envs/<env_name>/lib/libgdal.so'

关于postgresql - Geodjango导入django.contrib.gis.gdal时出现异常: OSError:/usr/lib/libgdal. so.1: undefined symbol :sqlite3_column_table_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521577/

相关文章:

ruby-on-rails - heroku 上的 Rails : after push, 得到 "PG::UniqueViolation: ERROR: duplicate key value violates unique constraint"

postgresql - 使用 PostgreSQL 选择随机点

postgresql - 优化 PostGIS 查询,ST_Intersects

python-3.x - 执行 conda install notebook 时出现 InvalidArchiveError

python - Anaconda 4.7.5 - 关于 conda-build <3.18.3 和 python 包问题的警告

django - 如何提高这个 django ORM 查询的性能?

sql - 在 PostgreSQL 中添加负间隔

python - 直接作为 SQL 查询查询 Sqlalchemy-utils EncrytedType

Django 设置使用两个引擎配置数据库

python - 如何从 jupyter 笔记本中删除停用的 conda 环境名称?