instalowanie GEOS, PROJ, GDAL / OGR w python virtualenv w Mac OS X


12

Usiłuję skonfigurować izolowanego Pythona virtualenv do pracy nad projektami GIS na moim Mac OS X. Wygląda na to, że będę musiał zainstalować GEOS, PROJ, GDAL / OGR ze strony Kyngchaos tutaj http://www.kyngchaos.com/ oprogramowanie / frameworki, a nie easy_install to do mojej virtualenv. Czy to jest dokładne?

Pliki do pobrania dostępne w Kyngchaos to instalatory pkg, a nie tylko jajko lub bistist modułów python. Nie jestem więc pewien, co jeszcze robi instalator w środowisku innym niż kopiowanie plików do /Library/Framework/geos.frameworkfolderu.

Jak powinienem przejść do instalacji konkretnej wersji GEOS, PROJ, GDAL / OGR w moim nowym python virtualenv? Byłbym wdzięczny za pomoc / sugestie w tej sprawie.

Odpowiedzi:


4

Jeśli każdy szkielet Kyngchaos znajduje się w ŚCIEŻCE, jest to łatwe. Każda platforma ma folder Unix, z bibliotekami do kompilacji rzeczy takich jak pyproj lub geos python, gdziekolwiek chcesz, nawet w prywatnym środowisku Pythona (nigdy nie miałem problemu)

Jedynym problemem jest to, że pyton Gdal jest w ramce Gdal. Ale w pakietach stron znajduje się plik gdal.pth

plik gdal.pth:

import sys; sys.path.insert(0,'/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages')

jeśli nie chcesz go skompilować samodzielnie, skopiuj ten plik do izolowanego python virtualenv


po zainstalowaniu tych projektów ręcznie, za pośrednictwem zewnętrznych instalatorów (fink / macports / cokolwiek) i innymi środkami gwarantuję wam, że najlepszym sposobem jest Kynchaos! +1000
Ragi Yaser Burhum

@Ragi Yaser Burhum - Zaczynam się z tobą zgadzać! Próbowałem użyć Fink, aby zainstalować niezbędne zależności, aby uruchomić Cartopy w Pythonie. Dostaję: „OSError: Nie można znaleźć biblioteki lib geos_c ani załadować żadnego z jej wariantów”, mimo że libgeos_c.dylib znajduje się na /sw/opt/libgeos3.6.1/lib i dodałem tę ścieżkę do .bash_profile. Nie sądzę, żebyś miał jakieś perły mądrości oparte na swoich doświadczeniach z fink?
user1718097

@ use use Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
user1718097


3

Virtualenv umożliwia udostępnienie prywatnego środowiska Python , ale nie obejmuje bibliotek systemowych poza światem Python. Trzy wymienione przez Ciebie pakiety to aplikacje C / C ++, więc chociaż mają interfejsy do użytku z Pythonem, nie można ich spakować bez interakcji z bibliotekami C (libc w górę).

Z powodu trudności z instalowaniem tych pakietów od zera, szczególnie w systemie OS X, możesz pomyśleć o uruchomieniu maszyny wirtualnej w trybie piaskownicy za pomocą czegoś takiego jak VirtualBox i zainstalować pakiety za pośrednictwem apt na tej maszynie w trybie piaskownicy: podczas gdy można to zrobić na OS X, prawdopodobnie nie jest wart wysiłku.


To dobra rekomendacja. Zastosowałem to podejście, używając Fusion, a nie VirtualBox, ale następnym razem mogę wypróbować Virtual Box. Użyłem CentOS dla systemu operacyjnego w pudełku. (Nie najlepszy wybór systemu operacyjnego ze względu na stabilną naturę i starsze wersje Pythona itp.)
DavidF

3

Jeśli potrzebujesz korzystać z OSX, możesz łatwo uniknąć skomplikowania instalacji, instalując homebrew !

Następnie jedynymi poleceniami, które musisz wprowadzić, są:

brew install gdal

Automatycznie zainstaluje także proj i geos, ponieważ są to zależności gdal.


3
Nie sądzę, że rozwiązuje to problem uzyskiwania dostępu do gdal z poziomu virtualenv (próbowałem i nie zadziałało)
djq

1
możesz używać, brew install gdaldopóki tworzysz venv z flagą --system-site-packages, zobacz moją odpowiedź tutaj gis.stackexchange.com/a/345248/155269
88jayto

1

Znalazłem dobry post na blogu, który zawiera inne rozwiązanie, które zadziałało w moim przypadku:

http://linfiniti.com/2013/02/installing-python-gdal-into-a-python-virtualenv-in-osx/

Jedyną różnicą w stosunku do postu na blogu jest to, że musiałem pobrać poprawną wersję GDAL, która pasowała do pakietów kyngchaos. W moim przypadku korzystałem z frameworka GDAL w wersji 1.10, więc następująca instalacja zakończyła się powodzeniem

source venv/bin/activate
pip install --no-install GDAL==1.10.0
cd venv/build/GDAL
python setup.py build_ext\
    --gdal-config=/Library/Frameworks/GDAL.framework/Versions/1.10/unix/bin/gdal-config\
    --library-dirs=/Library/Frameworks/GDAL.framework/Versions/1.10/unix/lib/\
    --include-dirs=/Library/Frameworks/GDAL.framework/Versions/1.10/Headers/

Następnie wyjdź z katalogu GDAL i zainstaluj bez pobierania

cd ~
pip install --no-download GDAL

AKTUALIZACJA: Być może trzeba dodać kilka zmiennych env przed wywołaniem setup.py, aby krok kompilacji zadziałał ( zobacz to pytanie )

export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments

0

Powyższa odpowiedź Yellowcap działała dla mnie z pewnymi drobnymi poprawkami:

instalacja pip - brak instalacji nie jest już opcją. Zamiast tego w katalogu env:

pip download GDAL==1.11.2 (or whichever version you want)

Rozpakuj pobrany katalog i włóż do niego cd:

tar -zxvf GDAL-1.11.2.tar.gz
cd GDAL-1.11.2

instalacja pip - brak pobierania również nie jest już opcją. Zamiast tego pozostań w katalogu GDAL i uruchom:

python setup.py build
python setup.py install

0

Instalator NextGIS wyodrębnił wiązania gdal, geos, proj itp. Oraz powiązania Pythona (Python 2.7) z gdal. Instalacja nie ma wpływu na biblioteki systemowe (tylko kilka zmiennych środowiskowych w bash_profile).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.