web-dev-qa-db-fra.com

Utiliser pip install pour installer Cartopy mais il manque la version Proj au moins 4.9.0

Il semble que je n'arrive pas à obtenir pip pour installer Cartopy sur mon ordinateur. Je travaille directement à partir de la ligne de commande Windows (pas d'Anaconda ou d'autres programmes proxy).

Lorsque j'essaye "pip install cartopy" j'obtiens le résultat attendu:

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\

Je sais que "pip install proj" n'obtient pas réellement la bonne version de module, donc je suis allé à https://proj4.org/install.html pour télécharger et installer l'OSGeo4W qui, je pensais, résoudrait mon problème mais ne semble pas (pour référence, je l'ai toujours sur mon ordinateur).

Alors j'ai essayé d'installer le cartopy .whl directement à partir de ce site Web https://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy et j'ai essayé d'utiliser "pip install Cartopy-0.17.0 -cp37-cp37m-win32.whl "(j'utilise la version 32 bits de Python3.7 donc je suis assez certain que c'est le bon fichier). Mais je reçois alors l'erreur:

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

Alors j'ai essayé de télécharger quelque chose appelé un fichier tar.gz, mais c'est là que je me perds. Je ne connais pas tar.gz et j'ai vu que vous devez "./configurer" le chemin du fichier, mais je ne savais pas comment faire ni comment je devrais stocker ce fichier. Tout conseil sur cette question serait extrêmement apprécié. Merci.

3
Justin Jones

Selon la réponse au problème Github correspondant, https://github.com/googlecolab/colabtools/issues/85#issuecomment-372532728 , les utilisateurs d'ubuntu doivent installer des packages supplémentaires avant d'installer Cartopy.

!apt-get install libproj-dev proj-data proj-bin  
!apt-get install libgeos-dev  
!pip install cython  
!pip install cartopy  
10
Chen Yazheng

Je recommande fortement l'installation en utilisant conda (pas nécessairement une installation complète d'Anaconda) car elle apportera toutes les dépendances exécutables requises par cartopy. Avec conda installé, l'installation de la dernière version de cartopy ressemblerait à:

conda install --channel conda-forge cartopy

Malheureusement, l'installation de binaires pour Python est notoirement diabolique sur Windows (en partie parce que la chaîne d'outils change avec chaque Python [au moins, elle le faisait jusqu'à> = = python 3.5], et en partie parce que la plupart des développeurs de l'écosystème scientifique python n'utilise ou n'a généralement pas accès aux machines Windows). L'incroyable ressource de Christoph Gohlke que vous avez déjà utilisé est la principale exception à cette déclaration.

Personnellement, j'ai passé plusieurs semaines-homme à installer Cartopy sur Windows (avec l'aide significative de gens comme l'équipe Enthought et Christoph Gohlke) - J'ai versé toutes ces connaissances dans l'écosystème de l'emballage de Conda-Forge pour que les autres n'aient pas à se sentir cette douleur s'ils choisissent d'utiliser conda.

Si vous vraiment, vraiment, vraiment devez installer manuellement cartopy sur votre machine Windows, vous voudrez peut-être jeter un œil à https: // github.com/conda-forge/cartopy-feedstock/tree/master/recipe qui contient toutes les étapes nécessaires à la création de cartopy dans Windows. En plus de cela, toutes ses dépendances sont documentées dans des référentiels de nom similaire sur l'organisation conda-forge.

Enfin, compte tenu de votre sortie et de la suggestion de @ cgohlke - essayez d'installer son binaire Shapely https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely .

8
pelson

Sur un Mac, je l'ai fait

    brew install geos
    brew install proj

Ajoutez ceci en haut de /usr/local/include/proj_api.h
# définir ACCEPT_USE_OF_DEPRECATED_PROJ_API_H

pip install Cartopy

Cela fonctionne pour Python3.6 mais échoue pour Python3.7.4

6
Tim Seed