You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
snappy requiert la version 3.6 de Python (or la dernière version de Python est plutôt 3.10). L'utilisation de conda, qui permet d'utiliser plusieurs versions de python sur un même poste, prend tout son sens.
Noter le chemin d'accès de python.exe dans l'environnement créé : C:\Users\BernardC\miniconda3\envs\snap_env\python.exe
Installation de snap
Sur mon poste, snap 8.0.6 était déjà installé dans le dossier C:\snap\bin
Installation de maven
Voir ce lien : https://maven.apache.org/install.html pour l'installation de maven 3.8.5.
Remarque : sur mon poste, un jdk v11 (adoptopenjdk) était déjà installé.
La variable d'environnement PATH est modifiée manuellement pour maven.
snappy requiert la version 3.6 de Python (or la dernière version de Python est plutôt 3.10). L'utilisation de conda, qui permet d'utiliser plusieurs versions de python sur un même poste, prend tout son sens.
L'installateur crée un répertoire C:\Users\BernardC\.snap\snap-python\snappy qui contient le module snappy
3. Configuration Python
Pour importer le module snappy il faut que Python connaisse le chemin d'accès du module. Il est possible de modifier la variable
d'environnement PYTHONPATH ou d'utiliser sys.path.append.
J'ai plutôt opté pour l'installation de snappy dans l'environnement snappy_env :
conda activate snap_env
cd C:\Users\BernardC\.snap\snap-python\snappy
python setup.py install
Lancer l'interprétateur Python pour tester le bon fonctionnement. Dans l'interpréteur, tapez :
>>> from snappy import ProductIO
Sur mon poste, ça ne fonctionnait pas ! J'obtiens une erreur de ce type :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\BernardC\miniconda3\envs\snap_env\lib\site-packages\snappy\__init__.py", line 64, in <module>
jpyutil.preload_jvm_dll()
File "C:\Users\BernardC\miniconda3\envs\snap_env\lib\site-packages\snappy\jpyutil.py", line 344, in preload_jvm_dll
return ctypes.CDLL(jvm_dll_file, mode=ctypes.RTLD_GLOBAL)
File "C:\Users\BernardC\miniconda3\envs\snap_env\lib\ctypes\__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] Le module spécifié est introuvable
J'ai résolu le problème en installant Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) (lien pour télécharger depuis Microsoft sur le forum ci-dessus).
Je relance l'interprétateur Python et :
>>> from snappy import ProductIO
Maintenant j'obtiens :
INFO: org.esa.s2tbx.dataio.gdal.GDALVersion: GDAL not found on system. Internal GDAL 3.0.0 from distribution will be used. (f1)
INFO: org.esa.s2tbx.dataio.gdal.GDALVersion: Internal GDAL 3.0.0 set to be used by SNAP.
INFO: org.esa.snap.core.gpf.operators.tooladapter.ToolAdapterIO: Initializing external tool adapters
INFO: org.esa.snap.core.util.EngineVersionCheckActivator: Please check regularly for new updates for the best SNAP experience.
Conclusion.
le module snappy contient le module jpy, qui dépend de la DLL jvm.dll, qui dépend de la DLL MSVCR100.dll. Dans le cas présent c'est cette dernière DLL qui manquait
il est théoriquement possible d'installer snappy après avoir installé snap grâce à la commande snappy-conf mais ça ne fonctionnait pas chez moi ... peut-être à cause de la DLL manquante.
en cas de réinstallation de snap, attention au fichier C:\Users\BernardC.snap\snap-python\snappy\jpyconfig.py qui contient des chemins d'accès aux fichiers de snap, notamment au JRE (Java Runtime Environment) inclus dans snap