Windows 中的另一个 GDAL 导入错误

One more GDAL import error in Windows

我已经使用 Christoph wheel 在 Windows 10 中安装(和卸载)和安装了 GDAL 2.2.2。但是,当我尝试导入它时,我得到:

Installing collected packages: GDAL
Successfully installed GDAL-2.2.2
(e4) C:\Users\R1702898\Documents\Empirical_v4>python
Python 3.4.4 |Continuum Analytics, Inc.| (default, Jun 15 2016, 15:25:08)     
[MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from osgeo import ogr
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\R1702898\Documents\e4\lib\site-packages\osgeo\__init__.py", line 35, in <module>
_gdal = swig_import_helper()
File "C:\Users\R1702898\Documents\e4\lib\site-packages\osgeo\__init__.py", line 31, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)
File "C:\Users\R1702898\Documents\e4\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
ImportError: DLL load failed with error code -1073741795

在 Windows 中安装的唯一方法是使用轮子。其他一切都失败了。唯一可用的轮子是 version 2.2.2 所有其他依赖项:Fiona、six、numpy、pandas 已安装。尽管 geopandas 也不会导入(因为它需要 ogr)。我也设置了垃圾箱的路径。

任何帮助。请。谢谢。

我要避免的事情之一是混合搭配不同的安装方式。如果您已经在使用 Conda,请坚持使用。我只将 pip install 用作最后的手段。因为 GDAL 使用编译代码,所以如果你安装依赖于 GDAL 的包,这些包是用不同的编译器构建的,你可能会遇到这种情况。这正是 Conda 通过仔细查看需求和依赖关系来解决的问题。

就您而言,部分困难来自于使用 Fiona,尽管它是一个很棒的软件包,但它们有一些非常严格的版本要求,因此它不是最容易拥有的依赖项。请参阅来自 Conda-Forge 的 yaml: https://github.com/conda-forge/fiona-feedstock/blob/master/recipe/meta.yaml

在我的机器上(Win 10 64 位)它仍然可以通过仅使用 Conda 获得上面列出的所有软件包,

我的方法是:

1) 将您的 Conda 更新到最新版本 (conda update conda -n root)

2) 创建新环境:

conda create -n gdaltest python=3.6 gdal fiona geopandas numpy -c conda-forge

由于一些食谱的限制,它解决了(对我来说)使用例如 Numpy 1.11,而不是最新的 1.13。

3) 激活新环境(activate gdaltest)并检查激活脚本是否有效。那应该正确设置环境变量,这是解决冲突的重要步骤。

在cmd 运行 SET中检查GDAL_DATA是否设置为您刚刚激活的环境。还要检查您的激活环境是否在 PATH 变量中排在第一位,它应该从您的环境中添加了几个文件夹(如 ..\Library\bin..\Scripts 等)。

这应该足够了。您可以通过启动 Python(确保正确的环境处于活动状态)并开始导入 gdal、fiona 等来检查它。