Salut les gars,
Je n'ai pas réussi à être importé en python même avec la variable GEOS_LIBRARY_PATH définie sur mon geos_c.dll. Il se plaint d'une fonction GEOSversion manquante. Cependant, la définition de GEOS_LIBRARY_PATH sur geos_c.dll lors de l'installation avec pip a bien fonctionné. Au début, il s'est également plaint du même problème là-bas.
Ce qui a fonctionné pour moi :
J'ai modifié le fichier libgeos.py (geos.py dans ma version) pour essayer de charger à la place geos_c.dll (dans la section win32). Cela a fonctionné pour moi maintenant, mais ce serait peut-être une amélioration d'essayer de charger les deux.
Je ne suis pas sûr des dll de gdal ou de la façon dont elles sont généralement nommées sous Windows, car c'est mon premier essai avec GDAL et bien fait. Les binaires ont été précompilés à partir de gisinternals (les liaisons python GDAL ont également indiqué cela comme une option pour les faire fonctionner).
@TheSy, nous avons uniquement conçu GEOS_LIBRARY_PATH pour être utilisé au moment de l'installation, cela fait partie du problème. L'autre partie est que, comme vous le voyez, nous saisissons le nom "gdal.dll" dans https://github.com/Toblerity/Shapely/blob/maint-1.5/shapely/geos.py#L130 -L138 . Je ne veux pas prendre en charge de nombreuses variantes du nom de la DLL, mais si "geos_c.dll" est très courant dans la nature, j'accepte volontiers un chemin ou un PR.
@sgillies ne sait pas comment les dll sont généralement nommées car c'était l'un de mes premiers essais avec python (généralement un programmeur c++) et aussi avec les bibliothèques SIG en général.
J'ai regardé comment la dll est nommée dans le gestionnaire de packages osgeo4w et il semble qu'elle s'appelle également "geos_c.dll". Les binaires de gisinternals contenaient deux dll : geos.dll et geos_c.dll. Je n'ai pas bien fonctionné avec geos.dll, même lors de l'installation avec pip (pour autant que je m'en souvienne).
Un point de données. Shapely est corrigé pour utiliser go_c.dll dans https://github.com/conda-forge/staged-recipes/blob/master/recipes/shapely/geos_c.win.patch (et je pense que Chrisoph Gohlke fait la même chose). La raison en revient à https://github.com/conda-forge/staged-recipes/blob/master/recipes/geos/cmake.win.patch.
Discussion précédente pertinente : https://github.com/SciTools/conda-recipes-scitools/issues/29
La distribution OSGeo4W l'envoie également sous le nom de "geos_c.dll".
Il est encore temps pour un PR de l'obtenir pour le 1.5.14 ...
Ai-je raison de penser que geos.dll
est la bibliothèque C++ et geos_c.dll
est l'API C ? Dans ce cas, lier à geos.dll
serait la mauvaise chose à faire.
J'ai contourné cela sur OSGeo4W (Windows) en copiant geos_c.dll
dans geos.dll
. :Ne vois pas de mal:
sur windows 10, python 3.6.5 64bit
Profitez
Commentaire le plus utile
sur windows 10, python 3.6.5 64bit
Profitez