Saya mengajukan pertanyaan ini pada Stack Overflow sebelum saya menyadari situs ini ada. Karena situs ini lebih sesuai, saya akan bertanya di sini juga.
Saya mencoba menginstal gdal dari pip pip install gdal
di dalam lingkungan virtual (Ubuntu). Gagal karena tidak dapat ditemukancpl_port.h
extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated
Namun GDAL diinstal dengan benar dan file header terletak di /usr/include/gdal/cpl_port.h
. Apakah ada beberapa variabel lingkungan untuk GDAL yang perlu diatur agar pip dapat menemukan file header?
python
gdal
ubuntu
installation
kevin
sumber
sumber
Jawaban:
jawaban selimnairb dekat, tetapi Anda tidak akan memiliki header kecuali Anda telah menginstal libgdal-dev:
dengan itu dilakukan,
lalu
Kompilasi berjalan sampai selesai dan saya memiliki GDAL di virtual env saya. Fiuh!
(edit 2018) Catatan: Untuk memastikan bahwa Anda menginstal versi yang benar dan menghindari masalah. ambil versi dengan
gdal-config --version
. lalu:sumber
$ pip install GDAL==10.0
pip install GDAL==1.10.0
.File header tidak dapat ditemukan karena alasan tertentu. Mungkin Anda Anda beroperasi di dalam Lingkungan Virtual atau mereka tidak berada di tempat yang seharusnya karena alasan tertentu. Dalam hal apa pun Anda dapat menentukan dir sertakan ketika menginstal gdal via pip.
Pertama unduh python gdal:
dalam versi pip yang lebih baru (> = 9.0.0)
pip install --no-install
tidak ada:kemudian tentukan di mana tajuknya:
lalu instal:
dalam versi pip yang lebih baru (> = 9.0.0)
pip install --no-download
tidak ada:Berikut cara lain untuk menginstal gdal python:
setelah itu IDLE terbuka:
dan kamu baik untuk pergi!
sumber
gdal-config --libs -> -L/usr/lib -lgdal
pip install --no-install GDAL
mendapatkan kesalahan:__main__.gdal_config_error: [Errno 2] No such file or directory
Ada ide?brew install gdal
dan menggunakan versi yang lebih lama dari paket Python GDAL:pip install --global-option=build_ext --global-option="-L/usr/local/include/gdal/" 'gdal==1.9.1'
Setelah mengikuti subset dari saran ini, ini adalah bagaimana saya mendapatkan Python GDAL 1.11.0 (solusinya harus versi-independen, lihat di bawah) instal untuk bekerja di Ubuntu 14.04 dengan pip:
Instal dependensi:
instal pip dengan melewati path include (awalan dengan
sudo
untuk instal seluruh sistem) dan menginstruksikan pip untuk menginstal versi yang cocok dengan sistem yang menginstal versi GDAL:sumber
sudo pip install --no-use-wheel -r python_requirements.txt --global-option=build_ext --global-option="-I/usr/include/gdal"
python_requirements.txt menentukan versi gdal yang lebih lama. Saya ragu itu penting untuk jujur, tetapi seluruh set instalasi pip selesai dengan sukses. U 12.04x64Menginstal paket Python
gdal
ke dalam virualenv di LinuxGDAL
menyediakan toolkit yang bagus untuk operasi terkait GEO. Namun, menginstalnya ke virtualenv di Linux bukanlah tugas sepele.Resep ini menjelaskan, bagaimana cara melakukannya.
Persyaratan
gdal
paket Python) ke dalam virtualenvMetode pemasangan
Ada beberapa metode untuk instalasi. Seseorang membutuhkan kompilasi dan membutuhkan beberapa menit lagi.
Yang lain menggunakan paket paket roda
pygdal
dan sangat cepat. Lagi pula, untuk membuat paket roda, orang perlu membuatnya sekali dan pembuatannya tetap menyertakan langkah kompilasi.Tentang
GDAL
paket dan versiGDAL
adalah pustaka umum berbasis C (++) untuk perhitungan terkait GEO.GDAL
utilitas dapat menginstal sistem secara luas yang membuat pustaka bersama tersedia, tetapi tidak menginstal paket Python itu sendiri.GDAL
datang dalam versi yang berbeda dan setiap distribusi Linux secara default menginstal versi yang berbeda.Paket Python
gdal
membutuhkan kompilasi dan tidak sepele untuk menginstal pada sistem berbasis Linux karena mengharapkan beberapa variabel lingkungan yang akan ditetapkan. Ini membuat instalasi menjadi virtualenv lebih sulit.Setiap
gdal
versi mungkin menggunakan versi yang berbedaGDAL
dan akan gagal menginstal jika versi yang diharapkan tidak ada dalam sistem.Paket python
pygdal
adalah alternatifgdal
, yang menginstal hal yang persis samagdal
, tetapi melakukannya dengan cara yang jauh lebih ramah virtual.pygdal
datang dalam versi yang mencerminkanGDAL
versi terkait . Jadi memilikiGDAL
versi 1.10.1 dalam sistem Anda harus menginstalpygdal
versi 1.10.1.Paket python
gdal
(dan jugapygdal
) menggunakan paket root python bernamaosgeo
dan memiliki set submodules, satu sedangosgeo.gdal
.Jika diperlukan, selain versi default
GDAL
dapat diinstal dan digunakan. Ini di luar cakupan deskripsi ini.Paket roda dapat dikompilasi silang, ini juga di luar jangkauan.
Menginstal
GDAL
ke sistemKarena
pygdal
memerlukanGDAL
pustaka bersama untuk hadir, kita harus menginstalnya terlebih dahulu.Dengan asumsi
GDAL
belum terinstal, panggilangdal-config
akan mengeluh dan memberi Anda petunjuk bagaimana menindaklanjuti:Ikuti petunjuknya dan pasang:
Setiap distribusi dapat menggunakan versi yang berbeda dari
GDAL
. Untuk mengetahui yang kami gunakan:Sekarang Anda tahu,
GDAL
sudah terinstal dan versinya adalah 1.10.1 (versinya bisa bervariasi).Instal
pygdal
dari paket sumber (memerlukan kompilasi)Saat
pygdal
ini disediakan hanya dalam paket tar.gz, yang berisi sumber paket dan membutuhkan kompilasi.Dengan asumsi, versi
GDAL
is1.10.1
dan virtualenv kami sudah diaktifkan:Mungkin perlu beberapa saat untuk menyelesaikannya, apakah itu perlu numpy, yang mungkin juga memerlukan kompilasi. Tunggu saja.
Periksa, sudah terpasang:
Mulai sekarang, Anda dapat menggunakan paket osgeo dalam kode Python yang Anda inginkan dengan cara yang persis sama seolah-olah Anda akan menginstalnya dengan
gdal
paket Python.Membuat paket roda untuk
pygdal
Perhatikan, paket roda itu harus dibuat untuk arsitektur yang persis sama, yaitu harus cocok:
Dalam kasus kami, itu juga harus cocok dengan versi yang
GDAL
diinstal.Langkah-langkah berikut dapat dilakukan dalam virtualenv atau tidak, sesuka Anda.
Pertama, pastikan, paket roda diinstal:
Dengan asumsi, Anda telah
GDAL
menginstal dan memiliki versi 1.10.1:dan tunggu, sampai selesai.
Setelah ini, Anda akan menemukan ruang kemudi subdirektori dan berisi paket dengan ekstensi `whl`:
Instal
pygdal
dari paket rodaInstalasi dari paket berformat roda jauh lebih cepat (satu detik dibandingkan menit), karena tidak memerlukan kompilasi.
Catatan, direktori dengan paket roda dapat memiliki nama apa pun, kami hanya akan menggunakan nama ruang kemudi.
Aktifkan virtualenv terlebih dahulu.
Pastikan, Anda memiliki dalam direktori ruang kemudi kedua paket roda yang diperlukan (untuk
pygdal
dannumpy
).Pastikan,
GDAL
diinstal dan versi cocok dengan versipygdal
.Instal
pygdal
dari paket roda:Ruang kemudi -f akan menunjuk ke direktori dengan file whl.
Tidak perlu menginstal
numpy
, itu akan diinstal secara otomatis.sumber
pygdal
Untuk kemenangan!! pypi : "Virtualenv dan versi setuptools friendly dari binding python GDAL standar" <3Ya, melakukan hal berikut sebelum menjalankan PIP tampaknya berhasil:
ekspor CPLUS_INCLUDE_PATH = / usr / include / gdal
export C_INCLUDE_PATH = / usr / include / gdal
sumber
Masalah dengan pip menginstal gdal adalah bahwa ia hanya mendapatkan binding, bukan seluruh perpustakaan, sehingga bisa menjadi rumit. Salah satu cara untuk mengatasinya adalah dengan menggunakan perintah pip untuk mengunduh - tetapi tidak menginstal. Kemudian Anda men-tweak lokasi header dari file konfigurasi. Kemudian Anda menginstalnya. meh.
Saya mengalami masalah yang sama tetapi menyadari bahwa menulis skrip kain untuk mengkompilasi ulang gdal dan menghasilkan binding python akan memakan waktu lebih sedikit. Anda bahkan mendapatkan manfaat dari filegdb dengan itu. Silakan dan gunakan inti yang saya tulis atau sesuaikan dengan isi hati Anda.
sumber
Sementara beberapa saat kemudian, ini memberikan path include tanpa harus bail out dari instalasi pip: Seseorang dapat mengatur path include menggunakan variabel lingkungan.
Dengan asumsi header di / usr / include / gdal, isikan a
export CPLUS_INCLUDE_PATH=/usr/include/gdal
sebelum menjalankan pip.
sumber
/usr/include/gdal
Setelah melihat ke kanan dan ke kiri untuk solusi, berikut adalah sesuatu yang bekerja untuk saya di Ubuntu 14.04, bahkan dari dalam virtualenv tanpa akses ke paket sistem:
Instal dependensi:
Setel flag kompiler:
Instal versi yang sesuai dengan pustaka sistem (pada saat penulisan Ubuntu Trusty menggunakan header 1,10):
sumber
Sekarang Anda dapat menggunakan versi virtualenv dan setuptools yang ramah dari binding python GDAL python standar .
sumber
Saya mengalami masalah serupa di Mac. Inilah cara saya mengatasinya:
Pertama, saya mengatur lingkungan virtual Python 2.7 menggunakan virtualenv. Distribusi Python dipasang di direktori yang disebut 'env'.
Saya kemudian menggunakan fink untuk menginstal gdal
Saya juga menginstal gdal-dev tetapi ini mungkin tidak diperlukan karena mungkin sudah diinstal dengan gdal.
Saya memeriksa versi yang diinstal menggunakan:
Pada instalasi saya, itu menghasilkan hasil 1.11.1
Instalasi fink dari gdal menginstal file header cpl_port.h di / sw / include / gdal1. Periksa instalasi Anda sendiri. Saya kemudian masuk:
Itu sepertinya bekerja untuk saya tetapi saya belum menguji instalasi.
sumber
Pada Fedora 24 yang memiliki repositori GDAL 2.0.2, saya harus menginstal paket Python seperti ini:
sumber
Saya mendapatkan kesalahan yang sama ketika mencoba untuk menginstal binding GDAL python pada mac (OS 10.10.5). Saya menginstal perangkat lunak dasar GDAL dari http://www.kyngchaos.com/software/frameworks menggunakan unduhan "Lengkap". Saya harus menetapkan tiga variabel lingkungan.
export C_INCLUDE_PATH = / Library / Frameworks / GDAL.framework / Header export CPLUS_INCLUDE_PATH = / Library / Frameworks / GDAL.framework / Header export LIBRARY_PATH = / Library / Frameworks / GDAL.framework / Version / Current / unix / lib
Bagian terakhir adalah menambahkan /Library/Frameworks/GDAL.framework/Programs ke PATH saya.
echo 'export PATH = / Library / Frameworks / GDAL.framework / Programs: $ PATH' >> ~ / .bash_profile
Setelah itu pip dapat menginstal GDAL untuk python. Semoga ini membantu.
sumber
Paket gdal ini 0.10.1 berfungsi dengan baik untuk Ubuntu 12.04: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/4353415/+listing-archive-extra
Paket gdal 0.10.1 untuk versi ubuntu lainnya: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+packages?field.name_filter=gdal&field.status_filter=published&field.series_filter=
sumber
gdal 1.10.1
juga, dan hanya melakukan hal berikutpip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal==1.10.0
Untuk menjawab aspek spesifik virtualenv dari pertanyaan:
Waspadalah yang
pygdal
mungkin membutuhkan versi GDAL yang berbeda, dibandingkan dengan apa yangGDAL
dibutuhkan paket binding python.Di bawah ini adalah apa yang saya gunakan untuk mendapatkannya di versi terbaru dari Fedora (20 dan 23).
sumber
Menginstal melalui Pip dengan Perintah Tunggal
Dengan asumsi paket pengembangan GDAL diinstal dan versi file header sudah benar, satu-satunya perintah yang diperlukan untuk menginstal GDAL dari repo PyPI adalah sebagai berikut:
Ini jelas mengasumsikan lokasi file header
/usr/include/gdal
.Instal GDAL Terbaru
Untuk menginstal GDAL dengan perintah pip di atas, versi file header harus serupa dengan versi yang akan dibuat oleh pip. GDAL memiliki referensi biner yang diperbarui di: https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries .
Cara Menginstal di OpenSUSE
Mengikuti tautan di atas, ada URL yang tertanam lebih jauh ke bawah ke paket GIS terbaru untuk OpenSUSE 42.1 http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/Application: Geo.repo
Ganti dengan paket yang sesuai. Dan jika tidak menggunakan
zypper
ada info lebih lanjut di https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinariessumber
Saya memiliki masalah yang sama pada Windows 10. Setelah beberapa percobaan saya datang dengan solusi ini.
PYTHONPATH=c:\python36
PATH=C:\python36\Scripts\;C:\python36\;%PATH%
pip install *.whl
(* .whl dari langkah2)sumber
Jika Anda menggunakan Docker, kami membuka sumber kami, yang menyederhanakan menggunakan GDAL dan Python 3. Kontainer menangkap langkah-langkah yang diuraikan di atas untuk memungkinkan Anda menggunakan GDAL dengan cepat dengan aplikasi Anda.
thinkwhere / gdal-python
sumber
Jika Anda menjalankan distro berbasis Debian, pustaka python GDAL tersedia melalui manajer paket Anda dan dapat dengan mudah diinstal dengan
sudo apt install python-gdal
atausudo apt install python3-gdal
sumber
Di Ubuntu 16.04 dengan conda dalam wadah buruh pelabuhan (tumpukan jupyter)
sumber
Di ubuntu, solusi yang lebih sederhana untuk menginstal gdal terbaru untuk python3: menginstal file library via
libgdal-dev
, dan python wrapper viapython-gdal
untuk python2:
sumber
Anda juga dapat mengalami masalah dengan penggunaan memori.
Saat menjalankan
pip install gdal==2.2.3
gcc diluncurkan untuk mengkompilasi sesuatu dan itu meningkatkan penggunaan memori.Jika Anda tidak memiliki cukup memori, kompiler gagal, dengan pesan seperti
Untuk memperbaikinya, Anda perlu menambahkan lebih banyak ram atau membebaskan beberapa.
sumber
Pendekatan ini bekerja untuk saya:
Atau sebagai bagian dari Dockerfile:
sumber
Jika Anda menggunakan Travis CI dan memerlukan versi GDAL terbaru untuk Python, berikut adalah contoh bagian dari
.travis.yml
file yang akan terlihat:sumber