jhemmi / QgisPhysiocapPlugin

Physiocap plugin helps analysing raw data from Physiocap in Qgis 2.x
Other
1 stars 0 forks source link

"ImportError: The _imaging C module is not installed" lors du calcul d'histogramme. Contexte : Windows et installation QGIS en 32 bits #29

Closed jhemmi closed 6 years ago

jhemmi commented 8 years ago

Une trace python abouti au message "module _imaging non installé"

2015-12-22T15:14:17 1 Traceback (most recent call last): File "C:/Users/xx/.qgis2/python/plugins\PhysiocapAnalyseur\Physiocap_dialog.py", line 852, in accept details, TRACE_HISTO, recursif) File "C:/Users/xx/.qgis2/python/plugins\PhysiocapAnalyseur\Physiocap_creer_arbre.py", line 281, in physiocap_creer_donnees_resultats physiocap_tracer_histo( data_histo_sarment, name, 0, 50, "SARMENT au m", "FREQUENCE en %", "HISTOGRAMME NBSARM AVANT TRAITEMENT") File "C:/Users/xx/.qgis2/python/plugins\PhysiocapAnalyseur\Physiocap_CIVC.py", line 365, in physiocap_tracer_histo plt.savefig(name) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\matplotlib\pyplot.py", line 472, in savefig return fig.savefig(_args, _kwargs) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\matplotlib\figure.py", line 1370, in savefig self.canvas.print_figure(_args, _kwargs) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\matplotlib\backends\backend_qt4agg.py", line 161, in print_figure FigureCanvasAgg.print_figure(self, _args, *_kwargs) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\matplotlib\backend_bases.py", line 2096, in print_figure **kwargs) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\matplotlib\backend_bases.py", line 1915, in print_tif image = Image.frombuffer('RGBA', size, buf, 'raw', 'RGBA', 0, 1) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\PIL\Image.py", line 1851, in frombuffer im = new(mode, (1,1)) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\PIL\Image.py", line 1763, in new return Image()._new(core.fill(mode, size, color)) File "C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\PIL\Image.py", line 37, in getattr raise ImportError("The _imaging C module is not installed") ImportError: The _imaging C module is not installed

Le path du contexte de l'erreur est retrouvé ainsi

import sys sys.path ['C:/PROGRA~1/QGISLY~1/apps/qgis/./python/plugins\processing', 'C:/PROGRA~1/QGISLY~1/apps/qgis/./python', u'C:/Users/xx/.qgis2/python', u'C:/Users/xx/.qgis2/python/plugins', 'C:/PROGRA~1/QGISLY~1/apps/qgis/./python/plugins', 'C:\PROGRA~1\QGISLY~1\bin\python27.zip', 'C:\PROGRA~1\QGISLY~1\apps\Python27\DLLs', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\plat-win', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\lib-tk', 'C:\PROGRA~1\QGISLY~1\bin', 'C:\PROGRA~1\QGISLY~1\apps\Python27', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\PIL', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win32.egg', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\python_dateutil-2.2-py2.7.egg', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\pytz-2014.2-py2.7.egg', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\win32', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\win32\lib', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\Pythonwin', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win32.egg', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\six-1.6.1-py2.7.egg', 'C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\wx-2.8-msw-unicode', u'C:/Users/xx/.qgis2//python', 'C:\PROGRA~1\QGISLY~1\apps\qgis\python\plugins\fTools\tools']

Pour le module PIL

import PIL PIL.path ['C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\PIL'] PIL._imaging Traceback (most recent call last): File "", line 1, in AttributeError: 'module' object has no attribute '_imaging'

Problème en cours d'investigation.

jhemmi commented 8 years ago

jan 2016 : Nouveau blocage avec un autre utilisateur sous Windows. Le contexte "python" et de la library "Image" utilisé par matplotlib par l'extension n'est pas propre. Mais non reproduit à volonté...

Le seul contournement trouvé est de ne pas lancer le calcul d'histogramme. Décochez "Création des histogrammes" dans l'onglet Histogramme

jhemmi commented 8 years ago

Le problème a pu être reproduit apres installation d'une version 32 bit de QGIS 2.12 version sous Windows.

Le message final de la trace est ImportError: The _imaging C module is not installed Il s'agit d'un problème dans la distribution QGIS qui va être soumis au support.

Pas d'autre contournement que ne pas demander d'histogrammes : le plugin en version 1.3.2 grisera la demande d'histogramme pour ce contexte.

jhemmi commented 8 years ago

Création d'un ticket à Osgeo tracking en janvier 2016 https://trac.osgeo.org/osgeo4w/ticket/481 Aucune prise en compte en avril 2016 : mise à jour pour relier plusieurs tickets à Osgeo tracking ( 451 326) Sept 2016 : proposition d'upgrate de matplotlib par pip par le support. Non testé.

jhemmi commented 6 years ago

Résolu avec QGIS3. Plus besoin d'utiliser PIL