Использование pip install для установки Cartopy, но отсутствует версия Proj как минимум 4.9.0 - PullRequest
0 голосов
/ 10 декабря 2018

Кажется, я не могу получить pip для установки Cartopy на свой компьютер.Я работаю прямо из командной строки Windows (без Anaconda или других прокси-программ).

Когда я пытаюсь "pip install cartopy", я получаю ожидаемое:

C:\Users\Justin\Documents\Python Programs>pip install cartopy
Collecting cartopy
  Using cached https://files.pythonhosted.org/packages/e5/92/fe8838fa8158931906dfc4f16c5c1436b3dd2daf83592645b179581403ad/Cartopy-0.17.0.tar.gz
  Installing build dependencies ... done
    Complete output from command python setup.py egg_info:
    C:\Users\Justin\AppData\Local\Temp\pip-install-cetb0vj7\cartopy\setup.py:171: UserWarning: Unable to determine GEOS version. Ensure you have 3.3.3 or later installed, or installation may fail.
      '.'.join(str(v) for v in GEOS_MIN_VERSION), ))
    Proj 4.9.0 must be installed.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Justin\AppData\Local\Temp\pip-install-cetb0vj7\cartopy\

Я знаю, что "pip install proj" на самом деле не получает правильную версию модуля, поэтому я перешел к https://proj4.org/install.html, чтобы загрузить и установить OSGeo4W, который, как я думал, решит мою проблему, но, похоже, не помог (хотя для справки у меня все еще есть это на моем компьютере, хотя).

Итак, я попытался установить cartopy .whl прямо с этого сайта https://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy и попытался использовать «pip install Cartopy-0.17.0-cp37-cp37m-win32.whl» (я использую32-битная версия Python3.7, поэтому я уверен, что это правильный файл).Но затем я получаю сообщение об ошибке:

C:\Users\Justin\Documents\Python Programs>pip install Cartopy-0.17.0-cp37-cp37m-win32.whl
    Processing c:\users\justin\documents\python programs\cartopy-0.17.0-cp37-cp37m-win32.whl
        Requirement already satisfied: numpy>=1.10 in c:\users\justin\appdata\local\programs\python\python37\lib\site-packages (from Cartopy==0.17.0) (1.15.1)
        Requirement already satisfied: setuptools>=0.7.2 in c:\users\justin\appdata\local\programs\python\python37\lib\site-packages (from Cartopy==0.17.0) (40.6.2)
        Requirement already satisfied: six>=1.3.0 in c:\users\justin\appdata\local\programs\python\python37\lib\site-packages (from Cartopy==0.17.0) (1.11.0)
        Collecting pyshp>=1.1.4 (from Cartopy==0.17.0)
          Downloading https://files.pythonhosted.org/packages/08/3e/3bda7dfdbee0d7a22d38443f5cc8d154ff6d4701e615f4c07bf1ed003563/pyshp-2.0.1.tar.gz (214kB)
            100% |████████████████████████████████| 215kB 1.4MB/s
        Collecting shapely>=1.5.6 (from Cartopy==0.17.0)
          Using cached https://files.pythonhosted.org/packages/a2/fb/7a7af9ef7a35d16fa23b127abee272cfc483ca89029b73e92e93cdf36e6b/Shapely-1.6.4.post2.tar.gz
            Complete output from command python setup.py egg_info:
            Traceback (most recent call last):
              File "<string>", line 1, in <module>
              File "C:\Users\Justin\AppData\Local\Temp\pip-install-sb4uyliy\shapely\setup.py", line 80, in <module>
                from shapely._buildcfg import geos_version_string, geos_version, \
              File "C:\Users\Justin\AppData\Local\Temp\pip-install-sb4uyliy\shapely\shapely\_buildcfg.py", line 200, in <module>
                lgeos = CDLL("geos_c.dll")
              File "c:\users\justin\appdata\local\programs\python\python37\lib\ctypes\__init__.py", line 356, in __init__
                self._handle = _dlopen(self._name, mode)
            OSError: [WinError 126] The specified module could not be found

Итак, я попытался загрузить файл с именем tar.gz, но здесь я теряю себя.Я не знаком с tar.gz и увидел, что вам нужно «./configure» указать путь к файлу, но я не был уверен, как это сделать, и не был уверен, где мне хранить указанный файл.Спасибо за любые советы по этому вопросу. Спасибо.

Ответы [ 3 ]

0 голосов
/ 09 июля 2019

Согласно ответу на соответствующую проблему Github, https://github.com/googlecolab/colabtools/issues/85#issuecomment-372532728, пользователям Ubuntu необходимо установить дополнительные пакеты перед установкой Cartopy.

!apt-get install libproj-dev proj-data proj-bin  
!apt-get install libgeos-dev  
!pip install cython  
!pip install cartopy  
0 голосов
/ 24 июля 2019

На Mac я сделал это

    brew install geos
    brew install proj

Добавьте это в начало /usr/local/include/proj_api.h
#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H

pip install Cartopy

Это работаетдля Python3.6, но не для Python3.7.4

0 голосов
/ 12 декабря 2018

Я настоятельно рекомендую установку с использованием conda (не обязательно полной установки Anaconda), так как она принесет все исполняемые зависимости, необходимые для cartopy.При установленном conda установка последней версии cartopy будет выглядеть так:

conda install --channel conda-forge cartopy

К сожалению, установка бинарных файлов для Python печально известна в Windows (отчасти потому, что цепочка инструментов меняется с каждой версией Python [по крайней мере, она использоваласьдо> = python 3.5], и отчасти потому, что большинство разработчиков научной экосистемы python обычно не используют или не имеют доступа к машинам Windows).Невероятный ресурс Кристофа Гольке, который вы уже использовали, является основным исключением из этого утверждения.

Я лично потратил несколько человеко-недель на установку картопа на Windows (при значительной помощи со стороны людей, включая команду Enthought и Кристофа Гольке).) - Я вложил все эти знания в экосистему упаковки conda-forge, чтобы другие не чувствовали такой боли, если решат использовать conda.

Если вы действительно, действительно, действительно необходимо установить cartopy вручную на вашем компьютере с Windows, вы можете взглянуть на https://github.com/conda-forge/cartopy-feedstock/tree/master/recipe, который содержит все шаги, необходимые для создания cartopy в Windows.В дополнение к этому все его зависимости задокументированы в одноименных репозиториях в организации conda-forge.

Наконец, учитывая ваш вывод и предложение @ cgohlke - попробуйте установить его двоичный файл Shapely https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely.

...