Menambahkan GDAL sebagai ketergantungan pada paket Python?

9

Saya mencoba mengemas skrip Python yang menggunakan GDAL untuk PyPI. Saya mulai dengan memasukkan referensi langsung ke setup.py:

install_requires=['GDAL==1.11.2'],

Dengan cara ini paket gagal diinstal di lingkungan virtual pengujian saya:

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

Saya kemudian mencobanya dengan referensi pygdal, karena ditandai sebagai versi virtualenv friendly:

install_requires=['pygdal'],

Dengan cara ini instalasi selesai tanpa kesalahan (tetapi dengan beban peringatan kompilasi yang biasa). Namun, ketika saya memohon script saya mendapatkan kesalahan ini kembali:

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

Apa cara yang benar untuk menetapkan GDAL sebagai ketergantungan?

Pembaruan : Ketergantungan tampaknya dideklarasikan dengan benar, masalahnya cenderung ke atas, dengan paket GDAL itu sendiri. Rincian lebih lanjut di StackOverflow .

Luís de Sousa
sumber
5
Saya berpendapat bahwa pertanyaan Python murni tentang gdal valid di sini.
John Powell
2
Menarik bagaimana pengulas tampak begitu yakin ini pertanyaan Python yang ketat tetapi sejauh ini tidak menunjukkan apa itu.
Luís de Sousa
6
Ini adalah pertanyaan python dan GDAL dan saya pikir tentang topik
Ian Turton
3
Ini diposting silang: stackoverflow.com/questions/36471683/…
Evil Genius
1
@EvilGenius Saya biasanya melakukan downvote postingan silang tetapi dalam hal ini saya dapat memaafkannya karena pemungutan suara penutupan asli pada pertanyaan di sini menunjukkan bahwa itu adalah cara untuk melanjutkan.
PolyGeo

Jawaban:

3

Sebelum menginstal GDAL python binding, Anda harus menginstal GDAL pada sistem Anda.

apt-get install -y libgdal-dev

Setelah itu, atur variabel dan instal binding

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

Versi sistem GDAL harus lebih tinggi daripada versi binding.

menang
sumber