Thêm GDAL làm phụ thuộc vào gói Python?


9

Tôi đang cố gắng gói một tập lệnh Python sử dụng GDAL cho PyPI. Tôi bắt đầu bằng cách bao gồm một tài liệu tham khảo trực tiếp trong setup.py:

install_requires=['GDAL==1.11.2'],

Bằng cách này, gói không cài đặt được trong môi trường ảo thử nghiệm của tôi:

extensions/gdal_wrap.cpp:2855:22: fatal error: cpl_port.h: No such file or directory
 #include "cpl_port.h"
                      ^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Sau đó tôi đã thử nó với một tham chiếu đến pygdal, vì nó được đánh dấu là phiên bản thân thiện với virtualenv:

install_requires=['pygdal'],

Bằng cách này, quá trình cài đặt kết thúc mà không có lỗi (nhưng với tải cảnh báo biên dịch thông thường). Tuy nhiên, khi tôi gọi tập lệnh, tôi nhận được lỗi này:

Traceback (most recent call last):
  File "/home/desouslu/.virtualenvs/test_p3/bin/hasc2gml", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 2716, in <module>
    working_set.require(__requires__)
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 685, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 588, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pygdal

Cách chính xác để thiết lập GDAL là một phụ thuộc là gì?

Cập nhật : Sự phụ thuộc dường như được khai báo chính xác, vấn đề có thể xảy ra ngược dòng, với chính gói GDAL. Thông tin chi tiết tại StackOverflow .


5
Tôi sẽ tranh luận rằng một câu hỏi Python thuần túy về gdal là hợp lệ ở đây.
John Powell

2
Thật thú vị khi các nhà phê bình dường như rất chắc chắn đây là một câu hỏi Python nghiêm ngặt nhưng cho đến nay vẫn không biết nó là gì.
Luís de Sousa

6
Đó là một câu hỏi trăn và GDAL và tôi nghĩ về chủ đề
Ian Turton

3
Điều này đã được đăng chéo: stackoverflow.com/questions/36471683/ từ
Evil Genius

1
@EvilGenius Tôi thường tải xuống các bài đăng chéo nhưng trong trường hợp này tôi có thể bỏ qua vì bỏ phiếu sát sao ban đầu cho câu hỏi ở đây chỉ ra rằng đó là cách để tiến hành.
PolyGeo

Câu trả lời:


3

Trước khi cài đặt ràng buộc python GDAL, bạn phải cài đặt GDAL trên hệ thống của bạn.

apt-get install -y libgdal-dev

Sau đó, đặt biến và cài đặt ràng buộc

CPLUS_INCLUDE_PATH=/usr/include/gdal \
C_INCLUDE_PATH=/usr/include/gdal \
pip install GDAL

Phiên bản của hệ thống GDAL phải cao hơn các ràng buộc phiên bản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.