2

我已经为 Windows 安装了最新的 OSGeo4W 编译,我想使用各种可用的 GDAL 工具。当我打开 OSGeo4W命令外壳时,输入 Python 并编写

> from osgeo import gdal

我收到以下错误:

> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "C:\OSGeo4W\apps\Python27\lib\site-packages\osgeo\__init__.py", line 21,
> in <module>
>     _gdal = swig_import_helper()
>   File "C:\OSGeo4W\apps\Python27\lib\site-packages\osgeo\__init__.py", line 17,
> in swig_import_helper
>     _mod = imp.load_module('_gdal', fp, pathname, description)
> ImportError: DLL load failed: The operating system cannot run %1.

我的PATH包含以下 OSGeo4W 条目:

> C:\OSGeo4W\bin
> C:\OSGeo4W\\apps\msys\bin
> C:\OSGeo4W\\apps\Python27\Scripts

从我在网上阅读的内容来看,此错误可能与不兼容的版本有关。我假设 OSGeo4W 包已编译为按原样工作,因此它可能是以前安装在我的计算机上的其他版本或干扰的残留物。但我不知道如何确定干扰的内容以及该信息的存储位置。

我能做些什么来解决这个问题?

4

2 回答 2

4

当安装了另一个版本的 python 时会出现此问题。

我发现当我在变量C:\OSGeo4W\bin的开头添加目录路径并通过shell 运行 python 时,我能够导入库。PATHOSGEO4Wgdal

于 2012-06-22T18:00:11.070 回答
1

共享库通常不存储在bin发行版的子目录中。尝试挖掘源代码OSGeo4W以找到 gdal dll 文件 ( gdal.dll??)。可能它在一个lib子目录中。将该路径也添加到您的PATH环境变量中。如果您想检查其他 GDAL 安装,只需在系统范围内搜索您尝试加载的 dll 并查看是否有多个。


我在网上找到的针对此错误的另一个选项是您需要使用 OSGeo4W 附带的特定 Python 版本。使用普通的 Python 2.7 安装将不起作用。看:

于 2012-05-07T14:43:53.830 回答