2017-09-23 63 views
2

我已经使用Christoph砂轮安装(并卸载)并安装了。但是,当我尝试导入时,我得到:Windows中还有一个GDAL导入错误

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,六个,numpy,pandas都已安装。尽管geopandas也不会导入(因为它需要ogr)。我还设定了路径。

任何帮助。请。谢谢。

+0

我个人会使用Conda,它解决了这些错误中的大多数。因为GDAL依赖于Numpy,我认为他们需要使用相同的编译器进行编译? –

+0

尝试conda conda-force pip的一切。我认为这是一个调整路径的问题...我会尝试再次卸载一切! –

+0

似乎GDAL 2.2.1与许多其他模块不兼容。我重申这个问题:是否有人知道如何获得较旧的车轮版本?谢谢https://stackoverflow.com/questions/46366884/repository-of-old-versions-of-windows-binary-library-wheels-for-python –

回答

1

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

就你而言,部分困难来自使用Fiona,尽管它是一个很好的包,但它们有一些非常严格的版本要求,使得它不是最简单的依赖。请参阅从康达-伪造YAML: https://github.com/conda-forge/fiona-feedstock/blob/master/recipe/meta.yaml

在我的机器(10场64位),它仍然有可能得到你上面只用康达列出所有包,

我的做法是:

1)更新您的康达到最新版本(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等。

+0

谢谢。我会看一看,然后我会尽快回复你。 –

+0

是的。它运行良好。谢谢。最后,我可以告诉你......我从来不知道你可以一次安装三个库。生活与学习。最好的, –

+0

非常好,很高兴它解决了!一次完成所有工作的好处是,即使在创建环境之前,任何依赖性问题都会立即显示出来。这样它更容易例如用不同的Python版本'再试一次'。 –