встановлення GEOS, PROJ, GDAL / OGR в python virtualenv на Mac OS X


12

Я намагаюся налаштувати ізольований python virtualenv для роботи над проектами ГІС на моїй Mac OS X. Звучить, як мені потрібно буде встановити тут GEOS, PROJ, GDAL / OGR з сайту kyngchaos http://www.kyngchaos.com/ програмне забезпечення / фреймворки, і не просто_встановити його в мою віртуаленву. Це точно?

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

Як би я міг про встановлення конкретної версії GEOS, PROJ, GDAL / OGR у свій новий python virtualenv? Буду вдячний за вашу допомогу / пропозиції щодо цього питання.

Відповіді:


4

Якщо кожна рамка Kyngchaos є в PATH, це легко. Кожен фреймворк має папку Unix з бібліотеками для компіляції таких речей, як pyproj або geos python, де завгодно, навіть у приватному середовищі Python (у мене ніколи не було проблем)

Єдина проблема полягає в тому, що питон Gdal знаходиться в рамках Gdal Framework. Але в site-пакетах є файл gdal.pth

Файл gdal.pth:

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

якщо ви не хочете складати його самостійно, скопіюйте цей файл у свій ізольований python virtualenv


встановивши ці проекти вручну, через сторонніх інсталяторів (фінк / макпорт / що завгодно) та за допомогою інших засобів, я гарантую вам, що найкращий шлях - через Kynchaos! +1000
Рагі Ясер Бурхум

@Ragi Yaser Burhum - я починаю погоджуватися з тобою! Я намагався використовувати Fink для встановлення необхідних залежностей для запуску Cartopy в Python. Я отримую: "OSError: Не вдалося знайти lib geos_c або завантажити будь-який з його варіантів", хоча libgeos_c.dylib знаходиться за адресою /sw/opt/libgeos3.6.1/lib, і я додав цей шлях до .bash_profile. Я не думаю, що у вас є якісь перлини мудрості, засновані на досвіді з фінком?
користувач1718097

@use use Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
користувач1718097

4

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


3

Virtualenv дозволяє надати приватне середовище Python , але не поширюється на системні бібліотеки за межами всесвіту Python. Ці три пакунки, про які ви згадали, є основними програмами C / C ++, тому, хоча вони мають інтерфейси для використання з Python, вони не можуть бути упаковані без взаємодії з бібліотеками C (libc on up).

Через труднощі з встановленням цих пакетів з нуля, особливо на OS X, ви можете подумати про запуск віртуальної машини з пісочницею, використовуючи щось на зразок VirtualBox, та встановлення пакунків через apt на цій машині з піском: хоча це можна зробити на OS X, мабуть, не варто докладати зусиль.


Це хороша рекомендація. Я дотримувався цього підходу, використовуючи Fusion, а не VirtualBox, але я можу спробувати Virtual Box наступного разу. Я використовував CentOS для ОС у вікні. (Не найкращий вибір ОС через стабільну природу та старіші версії Python тощо)
DavidF

3

Якщо вам потрібно використовувати OSX, ви легко уникнете складних умов установки, встановивши домашню мову !

Після цього єдиними командами, які вам потрібно буде ввести, є:

brew install gdal

Він автоматично встановить також proj та geos, оскільки вони є gdal залежностями.


3
Я не вірю, що це вирішує питання про доступ до gdal зсередини virtualenv (я спробував це і не вийшло)
djq

1
ви можете використовувати brew install gdal, поки ви створюєте свій вентилятор із прапором --system-site-пакети, дивіться мою відповідь тут 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 версії 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

ОНОВЛЕННЯ: Можливо, вам доведеться додати кілька середовищ, перш ніж викликати setup.py для кроку компіляції для роботи ( див. Це питання )

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.