我正在尝试使用同时使用arcpy
和gdal
模块的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 osgeo
或from 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.path
和os.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年
@Robintw有许多方法可以为python安装GDAL。也许您可以将我链接到您使用的可执行文件以及如何设置它?
—
詹姆斯·米尔纳
我刚刚设法解决了这个问题-我错过了阅读@Jason询问我是否使用的是python 2.7的64位安装的地方。答案是我的主要Python 2.7安装是64位的,但是Arc的安装是32位的,因此我需要安装32位版本的GDAL,现在可以正常使用了。谢谢大家-我将添加最终解决方案作为答案。
—
robintw 2012年