代码之家  ›  专栏  ›  技术社区  ›  B Furtado

Windows中还有一个GDAL导入错误

  •  3
  • B Furtado  · 技术社区  · 7 年前

    我已安装(并卸载)和 GDAL 2.2.2 在里面 Windows 10

    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、六、努比和熊猫。尽管geopandas也不会导入(因为它需要ogr)。我还设置了垃圾箱的路径。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Rutger Kassies    7 年前

    我要避免的事情之一是混合和匹配不同的安装方式。如果您已经在使用Conda,请坚持使用它。我只在万不得已的情况下使用pip安装。由于GDAL使用编译后的代码,如果您安装依赖于GDAL的软件包,而这些软件包是用不同的编译器构建的,那么它可能会变得一团糟,这可能是您遇到的情况。这正是Conda通过仔细研究需求和依赖关系所解决的问题。

    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。

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

    在命令运行中 SET 并检查是否 GDAL_DATA PATH 变量,它应该从您的环境中添加几个文件夹(如 ..\Library\bin ..\Scripts 等等)。

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