无法使用python django导入libgdal

时间:2012-12-01 08:12:34

标签: python django gis postgis

我用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

1 个答案:

答案 0 :(得分:3)

在python中导入包不一定会自动导入其下的任何子包/模块。执行import django.contrib.gis.gdal时,在gdal目录中运行__init__.py;这取决于该文件是否会import libgdal,以便通过gdal提供该文件。在这种特殊情况下,gdalgdal_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

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

{{1}}