установка GEOS, PROJ, GDAL / OGR в python virtualenv на Mac OS X

12

Я пытаюсь настроить изолированный python virtualenv для работы над ГИС-проектами на моем Mac OS X. Похоже, мне потребуется установить GEOS, PROJ, GDAL / OGR с сайта kyngchaos здесь http://www.kyngchaos.com/ софт / фреймворки, а не просто_установить его в мой virtualenv. Это точно?

Загрузки, доступные на kyngchaos, являются установщиками pkg, а не просто яйцом или списком модулей python. Итак, я не очень уверен в том, что еще делает установщик с окружением, кроме простого копирования файлов в /Library/Framework/geos.frameworkпапку.

Как мне установить конкретную версию GEOS, PROJ, GDAL / OGR в мой новый python virtualenv? Буду признателен за вашу помощь / предложения по этому вопросу.

Вишь
источник

Ответы:

4

Если каждая структура Kyngchaos находится в PATH, это легко. У каждого фреймворка есть папка Unix с библиотеками для компиляции таких вещей, как pyproj или geos python, где вы хотите, даже в частной среде Python (у меня никогда не было проблем)

Единственная проблема заключается в том, что Gdal Python находится в Gdal Framework. Но в site-package есть файл gdal.pth

gdal.pth файл:

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

если вы не хотите скомпилировать его самостоятельно, скопируйте этот файл в ваш изолированный python virtualenv


источник
установив эти проекты вручную, через сторонние установщики (fink / macports / что угодно) и другими способами, я гарантирую вам, что лучший способ - через Kynchaos! +1000
Раги Язер Бурхум
@Ragi Yaser Burhum - я начинаю с вами соглашаться! Я пытался использовать Fink для установки необходимых зависимостей для запуска Cartopy в Python. Я получаю: «OSError: Не удалось найти lib geos_c или загрузить ни один из его вариантов», хотя libgeos_c.dylib находится в /sw/opt/libgeos3.6.1/lib, и я добавил этот путь в .bash_profile. Я не думаю, что у вас есть жемчужины мудрости, основанные на вашем опыте с Fink?
user1718097
@use используй Homebrew :)
Ragi Yaser Burhum
@RagiYaserBurhum ;-)
user1718097
4

Я создаю воспроизводимые среды ГИС Python / C / C ++, используя virtualenv и zc.buildout. Мой проект ichpage https://github.com/sgillies/ichpage немного устарел, но может служить шаблоном для современного проекта (например, того, который я использую для моей работы по разработке и развертыванию сайта Pleiades). Сообщение в блоге об этом на http://sgillies.net/blog/856/i-can-has-python-and-gis-environments/ .

sgillies
источник
3

Virtualenv позволяет вам предоставлять приватную среду Python , но не распространяется на системные библиотеки вне юниверса Python. Все три упомянутых вами пакета являются приложениями C / C ++ по своей сути, поэтому, хотя они имеют интерфейсы для использования с Python, они не могут быть упакованы без взаимодействия с библиотеками C (libc on up).

Из-за сложности установки этих пакетов с нуля, особенно в OS X, вы можете подумать о запуске изолированной виртуальной машины с использованием чего-то вроде VirtualBox и установке пакетов через apt на эту изолированную машину: хотя можно сделать то же самое на OS X, это, вероятно, не стоит усилий.

SCW
источник
Это хорошая рекомендация. Я следовал этому подходу, используя Fusion, а не VirtualBox, но я мог бы попробовать Virtual Box в следующий раз. Я использовал CentOS для ОС в коробке. (Не лучший выбор ОС из-за стабильной природы и старых версий Python и т. Д.)
DavidF
3

Если вам нужно использовать OSX, вы можете легко избежать сложностей установки, установив homebrew !

После этого вам нужно будет ввести только следующие команды:

brew install gdal

Он также автоматически установит proj и geos, потому что они являются зависимостями gdal.

tommasop
источник
3
Я не верю, что это решает проблему доступа к gdal изнутри virtualenv (я пробовал, но это не сработало)
djq
1
вы можете использовать brew install gdalдо тех пор, пока вы создаете свой венв с флагом --system-site-packages, см. мой ответ здесь gis.stackexchange.com/a/345248/155269
88jayto
1

Я нашел хороший пост в блоге, который предлагает другое решение, которое работает в моем случае:

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

Единственное отличие от поста в блоге заключается в том, что мне нужно было скачать правильную версию GDAL, соответствующую пакетам kyngchaos. В моем случае я использовал GDAL Framework версии 1.10, поэтому следующая установка прошла успешно

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/

Затем покиньте каталог GDAL и установите без загрузки

cd ~
pip install --no-download GDAL

ОБНОВЛЕНИЕ: Возможно, вам придется добавить несколько переменных env перед вызовом setup.py, чтобы шаг компиляции заработал ( см. Этот вопрос )

export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments
yellowcap
источник
0

Ответ Yellowcap выше работал для меня с некоторыми незначительными изменениями:

pip install --no-install больше не является опцией. Вместо этого внутри каталога env:

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

Разархивируйте загруженный каталог и перейдите в него:

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

pip install --no-download также больше не поддерживается. Вместо этого оставайтесь в каталоге GDAL и запустите:

python setup.py build
python setup.py install
Наталья Марголис
источник
0

Установщик NextGIS имеет изолированные gdal, geos, proj и т. Д. И привязки python (Python 2.7) к gdal. Установка не влияет на системные библиотеки (только несколько переменных среды в bash_profile).

Дмитрий Барышников
источник