Добавление GDAL как зависимости от пакета Python?

9

Я пытаюсь упаковать скрипт Python, который использует GDAL для PyPI. Я начал с включения прямой ссылки в мой setup.py:

install_requires=['GDAL==1.11.2'],

Таким образом, пакет не удалось установить в моей тестовой виртуальной среде:

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

Затем я попробовал это со ссылкой на pygdal, так как он помечен как дружественная версия virtualenv:

install_requires=['pygdal'],

Таким образом, установка завершается без ошибок (но с обычной загрузкой предупреждений компиляции). Однако когда я запускаю скрипт, я получаю эту ошибку обратно:

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

Как правильно установить GDAL как зависимость?

Обновление : Кажется, что зависимость правильно объявлена, проблема скорее всего в восходящем направлении, с самим пакетом GDAL. Более подробная информация на StackOverflow .

Луис де Соуза
источник
5
Я бы сказал, что вопрос о gdal на чистом Python здесь действителен.
Джон Пауэлл
2
Интересно, что рецензенты кажутся настолько уверенными, что это вопрос строго Python, но до сих пор не указали, что это такое.
Луис де Соуза
6
Это вопрос о питоне и GDAL, и я думаю по теме
Ian Turton
3
Это было перекрестно опубликовано: stackoverflow.com/questions/36471683/…
Evil Genius
1
@EvilGenius Я обычно отклоняю кросс-постинги, но в этом случае я могу оправдать это, потому что первоначальное закрытое голосование по данному вопросу показало, что это был способ продолжить.
PolyGeo

Ответы:

3

Перед установкой привязки GDAL Python, вы должны установить GDAL в вашей системе.

apt-get install -y libgdal-dev

После этого установите переменные и установите привязку

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

Версия системы GDAL должна быть выше версии привязки.

WinSent
источник