Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

python-gdal et Nuitka : tout n'est pas embarqué

0 votes

Je souhaite utiliser des fonction python-gdal2 sur une distrib(trusty) qui n'a que gdal1.

J'ai développé mon programme sur stretch (debian9) qui a gdal-bin2 dans ses dépôts ainsi que python-gdal2. Jusqu'ici tout va bien.

J'ai ensuite compilé mon module avec nuitka en version standalone:

nuitka --recurse-stdlib --standalone --recurse-all  py_geo_gdal2.py

J'obtiens plein de warning:

Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/testing/nosetester.py:237: Cannot find 'scipy' in package 'numpy.testing' as absolute import.

Mais ça n'a pas l'air bien méchant: tout ceci marche bien sans les gdal-bin installé:

sudo apt-get remove gdal-bin python-gdal
sudo apt-get purge gdal-bin python-gdal
sudo apt-get remove --purge gdal-bin python-gdal
./py_geo_gdal2.exe -p ../F2_allCult_ete_2009_trie.shp -l geo_mcd.log -d debug

Jusque là tout va bien.
Par contre, lorsque j’exécute sur une distribution plus ancienne, c'est le drame:

...line 17, in swig_import_helper    
ImportError: libunistring.so.0: cannot open shared file: No such file or directory

Voici mon code:

import sys
import json
try:
    from osgeo import ogr,gdal,osr
except RuntimeError as e:

    D = {'name':None, 'type':None, 'layertype':None, 'nbfeatures':None,\
         'extent':None,\
         'proj':None, 'error':'ERROR: impossible d\'acceder au service'}
    print json.dumps(D)

    sys.exit('ERROR: cannot find GDAL/OGR modules'.format(e.errno, e.strerror))

Tout semble me dire que le mode standalone n'embarque pas assez.
Quelqu'un a une idée pour lister les dépendances manquantes et les embarquer ?

Llusca.

demandé 13-Oct par llusca (104 points)

2 Réponses

0 votes

Je crois qu'il y un paquet libgdal-dev qui permet d'installer le binding python pour gdal, qui fait le taff.

répondu 18-Oct par frague (484 points)
0 votes

Je crois qu'il y a un paquet libgdal-dev à installer qui permet de binder la lib gdal avec le code python.

Je l'utilise uniquement pour installer django-leaflet qui en a besoin :) .

répondu 18-Oct par anonyme
...