Python中的导入问题
我刚开始学Python,正在部署一个用Python写的开源应用,但遇到了一个问题:
ImportError: cannot import name DataSource on from django.contrib.gis.gdal import DataSource
不过,这个代码是可以正常工作的:
import django.contrib.gis.gdal
我现在的环境设置是:
- 使用Linux系统
- Python 2.7安装在/opt/python目录下
- 通过easy_install安装了GDAL,命令是'/opt/python/bin/easy_install GDAL'
- 看起来第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 找到它。