我正在尝试从虚拟环境(Ubuntu)中的pip pip install gdal
安装gdal。它失败了,因为找不到cpl_port.h
extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated
但是,正确安装了GDAL,并且头文件位于/usr/include/gdal/cpl_port.h
。是否有一些GDAL的环境变量需要设置才能让pip找到头文件?
答案 0 :(得分:21)
正如the other thread中所建议的,在运行pip之前导出一些shell变量可以完美地运行。可以使用*_INCLUDE_PATH
找到gdal-config --cflags
的路径。
# GDAL library must have been installed
sudo apt-get install libgdal-dev
# Set up pip and/or virtualenv stuff
...
# Now install Python binding for GDAL
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip install GDAL
答案 1 :(得分:6)
Tomyun的回答对我有用,条件是你必须确保通过apt-get
安装的GDAL-dev版本与pip
安装的版本相匹配。
对于Ubuntu 14.04,命令是:
# GDAL library must have been installed
sudo apt-get install libgdal-dev
# Set up pip and/or virtualenv stuff
...
# Now install Python binding for GDAL
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip3 install GDAL=1.10.0
答案 2 :(得分:5)
使用PIP :
pip install --no-install GDAL
然后进入ENV / build / GDAL
python setup.py build_ext --include-dirs=/usr/include/gdal
pip install --no-download GDAL
(资料来源:http://ubuntuforums.org/showthread.php?t=1769445)
使用Buildout :
[gdal-bindings]
recipe = zc.recipe.egg:custom
egg = GDAL==1.9.1
include-dirs = /usr/include/gdal
library-dirs = /usr/lib
答案 3 :(得分:1)
当我在虚拟环境中测试安装依赖于GDAL的我的软件包时,我也遇到了这个错误。在这种情况下,解决方案是在GDAL
中的pygdal
参数中将依赖性从install_requires
更改为setup.py
。像这样:
install_requires=['pygdal'],
答案 4 :(得分:1)
这对我有用:
我必须通过pip安装最新的听众版本才能安装gdal 2.2.4:
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install libgdal-dev
在此之前,即使包含了正确的“包含”路径,我也会得到extensions/gdal_wrap.cpp:3172:27: fatal error: cpl_vsi_error.h: No such file or directory
。
pip安装(在virtualenv中):
pip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal
答案 5 :(得分:1)
答案 6 :(得分:-3)
尝试做: brew install gdal
之后再试一次。