2012-07-04 14 views
16

Tôi đang cố gắng cài đặt gdal từ pip pip install gdal bên trong môi trường ảo (Ubuntu). Nó không thành công bởi vì nó không thể tìm thấy cpl_port.hGói GDAL Python thiếu tệp tiêu đề khi cài đặt qua pip

extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory 
compilation terminated 

Tuy nhiên GDAL được cài đặt một cách chính xác và tập tin tiêu đề nằm ở /usr/include/gdal/cpl_port.h. Có một số biến môi trường cho GDAL cần phải được đặt để pip tìm thấy các tệp tiêu đề không?

Trả lời

5

Sử dụng PIP:

pip install --no-install GDAL 

Sau đó cd vào ENV/build/GDAL

python setup.py build_ext --include-dirs=/usr/include/gdal 
pip install --no-download GDAL 

(Nguồn: http://ubuntuforums.org/showthread.php?t=1769445)

Sử dụng buildout:

[gdal-bindings] 
recipe = zc.recipe.egg:custom 
egg = GDAL==1.9.1 
include-dirs = /usr/include/gdal 
library-dirs = /usr/lib 
+0

này cũng có thể được 'bao gồm-dirs =/Library/Frameworks/GDAL.framework/Versions/2.1/Headers /' trên OSX nếu bạn cài đặt w/Kyngchaos ... – Owen

17

Như được đề xuất trong the other thread, xuất một số biến shell trước khi chạy pip hoạt động hoàn hảo. Đường dẫn cho *_INCLUDE_PATH có thể được tìm thấy với 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 
+0

cố định này nó cho tôi, nhưng cũng thấy câu trả lời của @Neil Smith: trong Ubuntu 14.04, bạn cần phải phù hợp với phiên bản libgdal được cài đặt trên hệ thống. – Gabriel

+0

Vẫn nghĩ rằng đây là lỗi. gdal_wrap.cpp nên #include "gdal/cpl_port.h" thay vì chỉ "cpl_port.h" –

+0

Chắc chắn KHÔNG làm việc cho tôi. Vẫn còn lỗi cpl_port.h. Sử dụng OpenSUSE – DanCat

7

Tomyun của câu trả lời làm việc cho tôi, với điều kiện là bạn phải đảm bảo rằng các phiên bản của GDAL-dev cài đặt qua apt-get phù hợp với phiên bản được cài đặt bởi pip.

Đối với Ubuntu 14.04, các lệnh là:

# 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 
+3

Tôi cũng sử dụng Ubuntu 14.04. Đối với tôi nó đã không hoạt động (tôi không có virtualenv). Chỉ khi tôi đã thay đổi hàng cuối cùng thành hàng này: sudo pip3 install --global-option = build_ext --global-option = "- Tôi/usr/include/gdal" GDAL == 1.10.0 –

-3

cố gắng để làm: brew cài đặt GDAL

sau đó thử lại.

+0

Câu trả lời này sẽ là hữu ích hơn nhiều nếu bạn giải thích OP những gì là sai trong trường hợp của mình và trong cách đoạn mã của bạn giải quyết vấn đề, và những điều kiện tiên quyết cho brew để làm việc là gì. –

+0

'brew' chỉ dành cho Mac trong khi OP sử dụng Ubuntu – Alessiox

0

Tôi cũng gặp lỗi này khi thử nghiệm cài đặt trong môi trường ảo gói của tôi phụ thuộc vào GDAL. Trong trường hợp này, giải pháp là thay đổi phụ thuộc từ GDAL thành pygdal trong thông số install_requires trong setup.py. Cũng giống như vậy:

install_requires=['pygdal'],