【问题标题】:One more GDAL import error in WindowsWindows 中的另一个 GDAL 导入错误
【发布时间】:2017-09-23 17:13:58
【问题描述】:

我已经使用 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、6、numpy、pandas。虽然 geopandas 也不会导入(因为它需要 ogr)。我还设置了 bin 的路径。

任何帮助。请。谢谢。

【问题讨论】:

  • 我个人会使用 Conda,它可以解决大部分错误。因为GDAL依赖于Numpy,所以我认为它们需要用相同的编译器编译?
  • 试过 conda conda-force pip 一切。我认为是调整路径的问题...我会再次尝试卸载所有内容!
  • GDAL 2.2.1 似乎与很多其他模块不兼容。我重申这个问题:有人知道如何获得旧的车轮版本吗?谢谢stackoverflow.com/questions/46366884/…
  • 自从 GDAL 2.2.1 发布到 2.2.2 以来,我一直使用它,总是从 conda-forge 构建。我从来没有遇到过他们的任何问题。我正在使用 Win 10 64 位。您可以尝试使用 Dependency Walker 之类的工具来深入研究错误。
  • 有安装顺序吗?如何防止我的虚拟环境访问原始 Anaconda 文件夹? @rutger-kassies

标签: python windows numpy importerror gdal


【解决方案1】:

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

在您的情况下,部分困难来自使用 Fiona,尽管它是一个很棒的包,但它们有一些非常严格的版本要求,使其不是最容易拥有的依赖项。查看来自 Conda-Forge 的 yaml: https://github.com/conda-forge/fiona-feedstock/blob/master/recipe/meta.yaml

在我的机器上(Win 10 64bit)仍然可以通过仅使用 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 等。

【讨论】:

  • 谢谢。我会看看并尝试,我会回复你。
  • 是的。它工作得很好。谢谢。最后,我可以告诉你……我从来不知道你可以一次安装三个库。生活与学习。最好的,
  • 非常好,很高兴它成功了!一次性完成所有工作的好处是,任何依赖问题都会在创建环境之前立即显示。这样就更容易使用不同的 Python 版本“重试”。
  • 另一个完全相同的问题。我安装(使用 conda-forge)statsmodels 提示说它已安装,然后无法导入:# All requested packages already installed. # packages in environment at C:\Anaconda3: # statsmodels 0.6.1 np111py34_0 conda-forge (C:\Anaconda3\envs\e36) &gt;python main.py run File "main.py", line 26, in &lt;module&gt; import validation File "C:\\validation\__init__.py", line 4, in &lt;module&gt; from statsmodels.tsa.api import VAR ModuleNotFoundError: No module named 'statsmodels'
猜你喜欢
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2020-08-21
  • 2018-09-24
  • 2014-08-27
相关资源
最近更新 更多