Python中的导入问题

3 投票
1 回答
1664 浏览
提问于 2025-04-16 14:03

我刚开始学Python,正在部署一个用Python写的开源应用,但遇到了一个问题:

ImportError: cannot import name DataSource on from django.contrib.gis.gdal import DataSource

不过,这个代码是可以正常工作的:

import django.contrib.gis.gdal

我现在的环境设置是:

  1. 使用Linux系统
  2. Python 2.7安装在/opt/python目录下
  3. 通过easy_install安装了GDAL,命令是'/opt/python/bin/easy_install GDAL'
  4. 看起来第3步的安装结果在这里:'/opt/python/lib/python2.7/site-packages/GDAL-1.7.1-py2.7.egg-info'

有人能帮我解决这个问题吗?

我可以成功执行import django.contribs.gis.gdal,那为什么DataSource却不能被导入呢?我猜DataSource也是GDAL库的一部分吧?

1 个回答

3

你有安装 python-gdal 吗?看起来 django.contrib.gis.gdal 只有在安装了它的情况下,才会提供 DataSource 这个类。至少在 Ubuntu 系统上,安装 python-django 默认并不会安装 python-gdal

补充说明:正如下面评论中提到的,你其实是安装了它,但负责查找它的模块 django/contrib/gis/gdal/libgdal.py 没找到。如果你查看一下这个模块的源代码(比如 http://code.djangoproject.com/browser/django/branches/gis/django/contrib/gis/gdal/libgdal.py?rev=8012),里面有一个 GDAL_LIBRARY_PATH 的设置,我觉得你可以用这个来帮助 Django 找到它。

撰写回答