Bienvenue sur IndexError.

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

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-2017 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-2017 par frague (692 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-2017 par anonyme
...