使用conda安装gdal?

21

我使用了

conda install gdal

安装 GDAL 软件包。但在导入软件包时,我遇到了以下错误。

>>> from osgeo import gdal
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "/Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: dlopen(/Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/_gdal.so, 2): Library not loaded: libgdal.20.dylib
  Referenced from: /Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/_gdal.so
  Reason: image not found
>>> from osgeo import ogr
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "/Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: dlopen(/Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/_gdal.so, 2): Library not loaded: libgdal.20.dylib
  Referenced from: /Users/danqing0703/anaconda/lib/python2.7/site-packages/osgeo/_gdal.so
  Reason: image not found

我应该怎么做才能在Python中导入GDAL?


我尝试了这个,但结果发现它不起作用... https://dev59.com/lF4b5IYBdhLWcg3wpzLv#31892421 - DQ_happy
它可以工作。非常感谢作者。 - DQ_happy
3
这对我来说没有解决问题。 :( - K.-Michael Aye
9个回答

21

对于Windows用户(截至2015年12月):

conda install gdal
conda upgrade numpy

安装gdal会导致numpy降级,因此需要升级回来。 我最近有机会换成Windows系统,令人惊喜的是gdal现在很容易“运作”。

全球范围内的Windows+Python+GIS用户应该为此庆祝。(不是Windows离Linux更近了一步,而是gdal-python在Windows上很容易安装)


Linux用户怎么办? - zabop
@zabop 首先执行 "sudo apt install gdal-bin",然后执行 "sudo apt install libgdal-dev"。这样就可以在您的系统上安装gdal了。接着,在虚拟环境中使用pip安装gdal。您可能需要添加一个gis repo来获取gdal。我曾经使用过apt install python-gdal,但现在不再使用了。 - user1269942

15

我刚刚犯了错误,在Conda的基础环境中执行了先前建议的命令:

conda install -c conda-forge gdal

这个问题花了很长时间才"解决环境",最终发现了许多导致安装停止的冲突。

鉴于此,我改为创建一个单独的环境,其中包括:

conda create -n gdal python=3.8

并使用以下方式激活:

conda activate gdal

然后执行了第一个命令(以及文档中列出的所有其他命令)。 这很快且没有任何错误。


欢迎。我很感激您在介绍自己的答案之前,承认之前被接受的答案存在的问题。这在这些老帖子上尤其有价值,因为当已经有一个被接受的答案时,解释为什么您的方法是相关的非常有用。谢谢。 - Jeremy Caney
谢谢你!这解决了我花了几个小时想要修复的问题。仅做一下记录,第一次尝试时,我不太记得原因,不得不重新启动 shell。重新启动后,所有东西都按预期工作了。 - thatsciencegal
谢谢!你的回答真是救了我的一天。 - entiat

6

您还可以使用渠道conda-forge

conda install -c conda-forge gdal

根据Anaconda网站上的建议进行操作。

4
与官方的Conda频道相比如何? - Rutger Hofste

3
我使用了。
conda install -c conda-forge gdal

在一台Fedora 30机器上,我遇到了库冲突的麻烦!
conda install gdal

第一次尝试成功


这两种解决方案对我都有效。但需要注意的是,它们在我之前使用的环境中无法运行,但并没有解释原因。它只是表现得好像 gdal 不存在一样。所以,我不得不为 GDAL 创建一个单独的环境,然后它就可以正常工作了! - Akaisteph7

2

这对我来说可行

> CONDA_SUBDIR=osx-64 conda create -n my_env python=3.7
> conda activate my_env
> conda env config vars set CONDA_SUBDIR=osx-64
> conda install gdal
Now use,
> python3
> from osgeo import gdal

目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

2
以下内容在我的 Ubuntu 20.04 上可靠运行:
conda update conda    
sudo apt-get install libgdal-dev gdal-bin

export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal

# check gdal version with 
gdal-config --version

echo '
name: raster-pipeline
channels:
- defaults
dependencies:
- python=3.7.*
- cython
- numpy
- ipython
- libspatialindex
- libgdal=USE_GDAL_VERSION
- gdal=USE_GDAL_VERSION
- pip
- pip:
  - numpy>=1.18.5
  - GDAL==USE_GDAL_VERSION
  - pyproj>=2.6.1.post1
  - rasterio>=1.1.5
' > raster_pipeline.yml
  
conda env create -f raster_pipeline.yml -v 
 
conda activate raster_pipeline 
python -c "from osgeo import gdal"
conda deactivate 

0

对于现有的 conda-env,在 Ubuntu 20.04 上我执行了以下操作:

conda update conda    
sudo apt-get install libgdal-dev gdal-bin

$export CPLUS_INCLUDE_PATH=/usr/include/gdal
$export C_INCLUDE_PATH=/usr/include/gdal

$gdal-config --version
gdal3.0.4

$whereis pip
/usr/local/anaconda3/bin/pip # anaconda's pip

$/usr/local/anaconda3/bin/pip install setuptools==57.4.0
$/usr/local/anaconda3/bin/pip install gdal==3.0.4

0
我曾经遇到过同样的问题,在尝试了几天不同的解决方案后,我发现问题出在Anaconda版本和Python版本之间的冲突上!如果你的系统上同时安装了Python和Anaconda,那么请卸载Python并使用Anaconda提示符来运行以下命令: pip install gdal

0

这对我有用。希望对某人有用。我正在使用Ubuntu 20.04:它还安装了osgeo和gdal。

步骤1:conda install -c conda-forge gdal

如果仍然存在一些错误,则

步骤2:conda config --set channel_priority strict”

步骤3:conda update gdal


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接