从ArcGIS for Desktop的Python窗口导入GDAL?


10

我正在尝试使用同时使用arcpygdal模块的ArcGIS 10.1中的Python窗口运行一些Python代码。但是,当我尝试导入gdal模块时,出现错误:

ImportError: No module named osgeo

显然,它找不到该模块,因此我将主要的python site-packages目录添加到了sys.path列表中:

sys.path.append(r"C:\Python27\lib\site-packages")

但是,当我尝试运行import osgeofrom osgeo import gdal出现以下错误时:

Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python27\lib\site-packages\osgeo\__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "C:\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: %1 is not a valid Win32 application.

我在互联网上发现了各种资源,这些资源似乎都在谈论类似的问题(例如,本问题本论坛帖子,但它们似乎已经过时(即,未使用ArcGIS 10.1)或提出的要求不尽相同)题。

当然,进口osgeo从一个正常的非弧Python窗口工作正常,和我比较sys.pathos.environ['PATH']脚本之间并更新他们,使他们都是一样的,它似乎并没有解决问题。

有谁知道我如何使它工作?


我听说过有人让GDAL在ArcGIS python界面中工作的故事。几个问题:您使用哪种方法安装GDAL,并且确定已安装正确的Windows绑定和正确的设置?并且您是否已将Python绑定安装到ArcGIS python安装?
詹姆斯·米尔纳

似乎除了ArcGIS 10安装的版本(2.6)之外,还安装了Python的另一个版本(2.7)。是否同时安装了2.6的GDAL,还是要指向2.7安装的版本?2.7安装是64位安装吗?
杰森

@Jason:我使用的是ArcGIS 10.1,根据gis.stackexchange.com/questions/22271/…,它使用Python 2.7。你知道那是正确的吗?
robintw 2012年

1
@Robintw有许多方法可以为python安装GDAL。也许您可以将我链接到您使用的可执行文件以及如何设置它?
詹姆斯·米尔纳

2
我刚刚设法解决了这个问题-我错过了阅读@Jason询问我是否使用的是python 2.7的64位安装的地方。答案是我的主要Python 2.7安装是64位的,但是Arc的安装是32位的,因此我需要安装32位版本的GDAL,现在可以正常使用了。谢谢大家-我将添加最终解决方案作为答案。
robintw 2012年

Answers:


5

@robintw已在评论中确认了这一点。


ImportError: DLL load failed: %1 is not a valid Win32 application.

从该错误看来,您的Python 2.7安装似乎是64位的。您必须安装32位版本的Python和GDAL。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.