【问题标题】:GeoDjango - GDAL library giving errorGeoDjango - GDAL库给出错误
【发布时间】:2023-07-16 18:41:01
【问题描述】:

我正在尝试让 GeoDjango 在 ubuntu 上运行,但遇到了 GDAL 的问题。

我已经下载并安装了 GDAL 没有问题。

我必须在我的项目设置中添加以下行:

GDAL_LIBRARY_PATH = '/usr/local/lib/libgdal.so.1.15.1'  

当我检查 shell 时,一切都很好:

In [1]: from django.contrib.gis import gdal
In [2]: gdal.HAS_GDAL
Out[2]: True

但是,当我尝试在 official tutorial 中运行 ogrinfo 时,出现以下错误:

$ ogrinfo world/data/TM_WORLD_BORDERS-0.3.shp
ogrinfo: error while loading shared libraries: libgdal.so.1: cannot open shared object file: No such file or directory

GDAL 文件位于:

/usr/local/lib/libgdal.a
/usr/local/lib/libgdal.la
/usr/local/lib/libgdal.so
/usr/local/lib/libgdal.so.1
/usr/local/lib/libgdal.so.1.15.1

libgdal.solibgdal.so.1 都符号链接到 libgdal.so.15.1

任何帮助将不胜感激。

【问题讨论】:

    标签: geodjango gdal


    【解决方案1】:

    所以,记录一下,答案是将库路径/usr/local/lib/ 添加到/etc/ld.so.conf,然后运行$ sudo ldconfig

    【讨论】:

    • 对我来说运行sudo ldconfig 就足够了。我按照here 的概述从源代码构建了 gdal。
    • 这个/usr/local/lib/在哪里
    【解决方案2】:
    sudo ldconfig
    

    通常就是您所需要的。只需在开始添加路径之前检查/etc/ld.so.conf/usr/local/lib 可能已经列出。

    【讨论】:

      【解决方案3】:

      根据 django 文档“安装 GeoDjango 时最常见的问题是找不到外部共享库(例如,用于 GEOS 和 GDAL)。”

      通过源安装的gdal库的通常路径是/usr/local/lib,因此如果你运行bash命令:

      导出 LD_LIBRARY_PATH=/usr/local/lib

      然后python应该能够找到

      【讨论】:

        【解决方案4】:
        $ sudo echo /usr/local/lib >> /etc/ld.so.conf
        $ sudo ldconfig
        

        https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#setting-system-library-path

        【讨论】: