2016-11-12 13 views
2

Я понимаю, что некоторые зависимости должны быть удовлетворены перед установкой картотеки и базовой карты. Я отсортировал большинство из них, используя pip (например, numpy и т. Д.).Как установить картографические/картографические библиотеки cartopy и basemap с помощью pip

я узнал, что есть некоторые cartopy проблем с proj.4 и некоторыми базовой карты проблемы с GEOS. Я думал, что привязки python к Java-проекту Proj.4 были достаточными, и я немного потерялся в C++-библиотеке GEOS (я думаю, что GDAL достаточно для GEOS, я связал его с миром python таким образом: pip install --global-option=build_ext --global-option="-I/usr/include/gdal" GDAL==`gdal-config --version).

я предпочел бы избежать всех этих вещей, как анаконда, навес и т.д. Если это возможно, я хотел бы использовать только pip как на Ubuntu (apt-get, только если pip не хватает) и Mac OSX (самодельный например brew install <some_package>, только если pip не хватает).

cartopy застрял на версии Proj.4, которая является слишком старой. Выход pip говорит: Proj4 version 4.8.0 is installed, but cartopy requires at least version 4.9.0.. Я предполагаю, что это pip установить питона привязок было достаточно, но это не решает проблему:

$ pip show pyproj 
Name: pyproj 
Version: 1.9.5.1 
Summary: Python interface to PROJ.4 library 
Home-page: https://github.com/jswhit/pyproj 
Author: Jeff Whitaker 
Author-email: [email protected] 
License: OSI Approved 
Location: /usr/local/lib/python2.7/dist-packages 
Requires: 

Я не понимаю, почему питон привязки к proj.4 не достаточно, даже если эти переплеты являются последней версией, доступной с использованием pip.

базовая карта застревает по-разному:

  • Использование pip2 install basemap каким-то образом я получаю Could not find a version that satisfies the requirement basemap (from versions:) No matching distribution found for basemap
  • Но из документации BaseMap я обнаружил, что библиотека не связана с pip репозиториев по какой-то причине и должен быть установлен из исходного кода. Так что я бежать: pip2 install https://github.com/matplotlib/basemap/archive/v1.0.7rel.tar.gz и я считаю, что GEOS компиляции кода C++ запускается и через некоторое время он останавливается с на дне этого:

    In file included from src/_geoslib.c:255:0: 
    /usr/include/geos_c.h:151:22: note: expected ‘GEOSMessageHandler’ but argument is of type ‘void (*)(char *, char *)’ 
    extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function, 
            ^
    x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/src/_geoslib.o -lgeos_c -lgeos -o build/lib.linux-x86_64-2.7/_geoslib.so 
    /usr/bin/ld: cannot find -lgeos 
    collect2: error: ld returned 1 exit status 
    /usr/bin/ld: cannot find -lgeos 
    collect2: error: ld returned 1 exit status 
    error: Command "x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/src/_geoslib.o -lgeos_c -lgeos -o build/lib.linux-x86_64-2.7/_geoslib.so" failed with exit status 1 
    
    ---------------------------------------- 
    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-QVrKRr-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-EgAOPT-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-QVrKRr-build/ 
    

Я не уверен, что я делаю Неправильно:

  • Как обеспечить правильный материал Proj.4 для картографии? На самом деле, я бы предпочел найти более старую версию cartopy, которая в порядке с существующей версией Proj.4 (которая, как я полагаю, исходит из привязок pip install)
  • Как получить базовую карту для поиска GEOS из ссылок GDAL, которые я установил с помощью pip? Если этого недостаточно, то что мне делать больше? Возможно, какой-то apt-get пакиста GEOS, который позволяет запускать компиляцию GEOS внутри установки базовой карты?

Я немного смущен в этом нет mans land между двоичными файлами Java, бинарниками C++ и привязками к пакетам python.

ответ

0

Как вы заметили cartopyProj.4 lib в версии> = 4.9. На Ubuntu (новее 16.04) вы можете установить его через sudo apt-get install libproj-dev.

Для старшего Ubuntu, например. 14.04, вы можете просто загрузить новейший пакет с 16.04 (xenial libproj-dev) и установить его вручную. Обратите внимание, что это зависит от libproj9 in version 4.9. Не забудьте удалить устаревшую версию, прежде чем обновлять ее с помощью
sudo apt-get purge libproj-dev libproj9 Как только вы это сделаете, откройте и загрузите пакеты из ссылок для соответствующей архитектуры (из вашего журнала я понимаю, что это amd64). Дважды щелкните загруженные файлы в порядке librproj9 и libproj-dev или используйте sudo dpkg -i <path_to_file>.

+0

Это делает proj4, но для меня он тянет 4.8.0, а не 4.9.0 – Daniel

+0

@ Daniel Я обновил запись. –