【问题标题】:Cannot import libgdal with python django无法使用 python django 导入 libgdal
【发布时间】:2012-12-01 08:12:33
【问题描述】:

我在 Django 中遇到这个错误:

>>> import django.contrib.gis.gdal
>>> print django.contrib.gis.gdal.libgdal.gdal_full_version()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'module' object has no attribute 'libgdal'

但我有这个:

$ locate libgdal

/usr/local/lib/python2.7/site-packages/django/contrib/gis/gdal/libgdal.py
/usr/local/lib/python2.7/site-packages/django/contrib/gis/gdal/libgdal.pyc
/usr/local/lib/python2.7/site-packages/django/contrib/gis/gdal/libgdal.pyo

【问题讨论】:

    标签: python django gis postgis


    【解决方案1】:

    在python中导入包不一定会自动导入其下的任何子包/模块。当您执行import django.contrib.gis.gdal 时,会在gdal 目录中运行__init__.py;取决于该文件是否执行import libgdal,以便通过gdal 获得该文件。在这种特殊情况下,gdal 将(以及其他)gdal_full_version 函数从 libgdal 导入到自身,而不是整个 libgdal,因此您可以这样做:

    >>> import django.contrib.gis.gdal
    >>> print django.contrib.gis.gdal.gdal_full_version()
    GDAL 1.6.3, released 2009/11/19
    

    或者要明确函数的实际定义位置,您可以这样做:

    >>> import django.contrib.gis.gdal.libgdal
    >>> print django.contrib.gis.gdal.libgdal.gdal_full_version()
    GDAL 1.6.3, released 2009/11/19
    

    【讨论】:

      猜你喜欢
      • 2021-02-04
      • 2012-09-27
      • 2016-01-07
      • 2014-05-06
      • 2013-06-24
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多