Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoRezo est partenaire de l'évènement DécryptaGéo 2017, le rendez-vous indépendant des professionnels de l'information géographique.

Rendez-vous les 24 et 25 janvier 2017 à l'ENSG, cité Descartes, Noisy-Champs.

Retrouvez le programme de l'évènement et le formulaire d'inscription sur le site de DécryptaGéo

#1 jeu. 11 juillet 2013 20:16

emunasa
Membre
Date d'inscription: 5 juil. 2013
Messages: 4

QGIS: developper en Python ?

Bonjour ,
dans le cadre d'un projet des études ( disant un stage ) nous sommes amené ( moi et mon binome ) à developper une application SIG personnalisée sous un SIG Open Source . nous avons opté pour le SIG Open Source Qgis avec le langage Python . Aprés,  nous sommes un peu perdu entre les differents outils à utiliser, les versions , les bibliotheques et tous ça . Si quelqu'un peut nous aider par des orientations , d'où commencer ? comment ? qu'est ce qu'on a besoin d'installer , d'intégrer ?
Merci d'avance

Hors ligne

 

#2 ven. 12 juillet 2013 13:16

tqhien
Membre
Lieu: Clamart
Date d'inscription: 22 avril 2011
Messages: 71

Re: QGIS: developper en Python ?

Bonjour,

Tout d'abord, une question : qu'entendez-vous par application personnalisée ?
S'il s'agit de faire des formulaires de saisie : il faudra créer des fichier .iu avec qt designer et un peu de code python pour les traitements.
S'il s'agit de créer des fonctionnalités particulières : un plugin en python est-il suffisant ?
Dans ces deux cas, il suffit d'installer la version binaire par défaut (Par osgeo4w pour windows par exemple) et de rajouter quelques fichiers là où il faut.

S'il s'agit de redessiner complètement l'interface ou d'effectuer des modifications plus lourdes, dans ce cas, il faudra passer par une recompilation du programme, soit avec Visual C++ (pour windows) ou QT pour les autres plateformes.

Cordialement.

Hien.

Hors ligne

 

#3 sam. 13 juillet 2013 14:23

emunasa
Membre
Date d'inscription: 5 juil. 2013
Messages: 4

Re: QGIS: developper en Python ?

Merci pour votre intéraction .
en fait , notre application s'agir d'une application independante et non pas un plugin mais qui utilise quelque fonctionnalités de base déja existantes dans QGis ( par exemple la selection , Zoom , pan ...etc ) . Alors notre utilisateur peut ne pas posséder Qgis mais il suffit d'executer notre application . est ce que c'est faisable déja ?
Cordialement

Hors ligne

 

#4 lun. 15 juillet 2013 10:50

tqhien
Membre
Lieu: Clamart
Date d'inscription: 22 avril 2011
Messages: 71

Re: QGIS: developper en Python ?

Bonjour,

Un tutoriel (en anglais) existe à l'adresse suivante : http://geospatialdesktop.com/2009/02/cr … ication_1/ qui décrit comment créer une application personnalisée en Python qui utilise l'API de QGIS mais le site donne une erreur actuellement. Il suffit d'y accéder via le cache de Google par exemple.

Quelques remarques : l'application nécessite que QGIS soit installé. Ce n'est donc pas à proprement parler une application indépendante. Si la taille de l'installation n'est pas un souci, alors cette solution peut s'avérer intéressante. Vous pouvez également inclure QGIS en version "portable" dans votre installation : les dernières versions de l'installateur OSGeo4W démarrent en chemin relatif (cf fichiers batchs) et il vous faudra peut-être les adapter pour votre application. Par contre, si la taille totale est limitée (comme un démonstrateur sur CD), en fonction de la taille des données à afficher, il faudra peut-être passer par un programme réellement indépendant, nécessitant l'utilisation des bibliothèques C++ de QGIS et une compilation.

Cordialement.

Hors ligne

 

#5 mer. 04 janvier 2017 15:13

lesjj10
Membre
Date d'inscription: 18 déc. 2014
Messages: 13

Re: QGIS: developper en Python ?

Attention, le tutoriel http://geospatialdesktop.com/2009/02/cr … ication_1/ stitule qu'une installation de QGIS via OsGeo4W ne nécessite aucune modification de paramètre. Aujourd'hui, ce n'est plus vrai, au moins avec windows.

Pour ma part, j'ai ajouté, dans la variable path la valeur C:\OSGEO4~1\apps\qgis\bin (j'ai installé QGIS dans le répertoire C:\OSGEO4~1) et j'ai initié la variable PYTHONPATH à la valeur C:\OSGEO4~1\apps\qgis\python

Dernière modification par lesjj10 (mer. 04 janvier 2017 15:15)

Hors ligne

 

#6 mer. 04 janvier 2017 15:25

FPNO
Membre
Date d'inscription: 24 oct. 2013
Messages: 89

Re: QGIS: developper en Python ?

Bonjour

Si j'ai bien compris vous souhaitez une appli pour publier des projets QGIS vous avez ceci :

https://qgiscloud.com/

Cdt

Franck

Hors ligne

 

#7 mer. 04 janvier 2017 17:30

Anthony Philibert
Membre
Date d'inscription: 25 oct. 2016
Messages: 4

Re: QGIS: developper en Python ?

Bonjour,

Si la taille n'est pas un critère restrictif, vous pouvez installer qgis avec Osgeo4w puis copier le dossier d'installation de qgis
dans le dossier de votre application.

Afin de pouvoir lancer le code python contenant votre application, vous devrez créer un fichier .bat comme dans l'exemple suivant.

Code:

set CHEMIN_APPLICATION=%cd%
CALL "%CHEMIN_APPLICATION%qgisbino4w_env.bat"
set GDAL_DATA=%CHEMIN_APPLICATION%qgissharegdal
set QGIS_PREFIX_PATH=%CHEMIN_APPLICATION%qgisappsqgis
set PROCESSING_PATH=%CHEMIN_APPLICATION%qgisappsqgispythonplugins
set PYTHONPATH=%CHEMIN_APPLICATION%qgisappsqgispython;%QGIS_PREFIX_PATH%;%PROCESSING_PATH%
set PATH=%CHEMIN_APPLICATION%qgisbin;%TEST%qgisappsqgisbin;%PATH%
python nom_de_votre_fichier_python.py

En plaçant le dossier de qgis, votre fichier python contenant votre code et le fichier bat précédent dans un même dossier vous pourrez créer une application qui se lance de n'importe quel dossier.

Si vous avez des problèmes pour  créer une interface graphique dans votre code python, je pourrais vous fournir un exemple.

Hors ligne

 

#8 ven. 06 janvier 2017 16:23

lesjj10
Membre
Date d'inscription: 18 déc. 2014
Messages: 13

Re: QGIS: developper en Python ?

Bonjour,

Merci de ces réponses.

J'ai créé un fichier .bat en me basant sur la dernière réponse de la discussion http://georezo.net/forum/viewtopic.php?pid=290135 et en l'adaptant à mon installation via OSGeo4W :

Code:

SET OSGEO4W_ROOT=C:\OSGeo4W64
set path=%OSGEO4W_ROOT%\bin;%WINDIR%\system32;%WINDIR%;%WINDIR%\WBem;%OSGEO4W_ROOT%\apps\qgis\bin
SET PYTHONPATH=%OSGEO4W_ROOT%\apps\Python27;%OSGEO4W_ROOT%\apps\Python27\Lib;%OSGEO4W_ROOT%\apps\Python27\sip;%OSGEO4W_ROOT%\apps\qgis\python
SET PYTHONHOME=%OSGEO4W_ROOT%\apps\Python27
SET QGISHOME=C:\OSGeo4W64

Je lance un terminal puis ce fichier .bat. Ensuite, mon application fonctionne sans problème.

Pour amméliorer cette situation, j'ai modifié mes variables d'environnement systèmes (je suis sur windows 10) pour ne plus être obligé de lancer mon .bat. J'ai modiffié la valeur de la variable path. J'ai créé les variables PYTHONPATH, PYTHONHOME et QGISHOME en affectant les mêmes valeurs que celles présentes dans le fichier .bat. Cela ne fonctionne pas tant que je n'ai pas executé mon .bat.

Code:

C:\Users\geomajic>python c:\QGIS\code_python\TransShpCsv.py C:\QGIS\Demonstartion\Forets1.shp C:\QGIS\code_python\exportcsv.csv
Traceback (most recent call last):
  File "c:\QGIS\code_python\TransShpCsv.py", line 1, in <module>
    from qgis.core import *
  File "C:\OSGeo4W64\apps\qgis\python\qgis\__init__.py", line 27, in <module>
    from qgis.core import QgsFeature, QgsGeometry
  File "C:\OSGeo4W64\apps\qgis\python\qgis\core\__init__.py", line 30, in <module>
    from qgis._core import *
ImportError: DLL load failed: Le systÞme dÆexploitation ne peut pas exÚcuter %1.

Pourtant, les valeurs de sys.path avant et après l'execution de ce .bat sont identiques :

Code:

C:\OSGeo4W64\apps\Python27\lib\site-packages\matplotlib-1.3.1-py2.7-win-amd64.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\nose-1.3.3-py2.7.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\tornado-4.0.1-py2.7-win-amd64.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\backports.ssl_match_hostname-3.4.0.2-py2.7.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\certifi-14.05.14-py2.7.egg
c:\osgeo4~1\apps\python27\lib\site-packages\python_dateutil-2.1-py2.7.egg
C:\OSGeo4W64\apps\Python27
C:\OSGeo4W64\apps\Python27\Lib
C:\OSGeo4W64\apps\Python27\sip
C:\OSGeo4W64\apps\qgis\python
C:\OSGeo4W64\bin\python27.zip
C:\OSGeo4W64\apps\Python27\DLLs
C:\OSGeo4W64\apps\Python27\lib\plat-win
C:\OSGeo4W64\apps\Python27\lib\lib-tk
C:\OSGeo4W64\bin
C:\OSGeo4W64\apps\Python27\lib\site-packages
C:\OSGeo4W64\apps\Python27\lib\site-packages\PIL
C:\OSGeo4W64\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win-amd64.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\pytz-2012j-py2.7.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\win32
C:\OSGeo4W64\apps\Python27\lib\site-packages\win32\lib
C:\OSGeo4W64\apps\Python27\lib\site-packages\Pythonwin
C:\OSGeo4W64\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win-amd64.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\wx-2.8-msw-unicode
C:\OSGeo4W64\apps\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg
C:\OSGeo4W64\apps\Python27\lib\site-packages\xlwt-0.7.5-py2.7.egg

Est-ce que j'ai oublié de créer une variable ou d'affecter une valeur?

PS : je suis conscient que mes questions sont parfois longues mais j'essaye d'être le plus complet possible pour expliquer le mieux possible la situation que je rencontte.

Hors ligne

 

#9 lun. 09 janvier 2017 08:54

Sylvain PIERRE
Membre
Lieu: Strasbourg
Date d'inscription: 6 sept. 2005
Messages: 136

Re: QGIS: developper en Python ?

Bonjour,

Pourquoi

ne plus être obligé de lancer mon .bat

?
Si c'est parce que vous êtes en phase de développement je comprends, ça devient vite fastidieux.
Par contre en production, le fait de passer par un .bat ne me choque pas (c'est de cette manière que QGIS est lancé).
Pour revenir au premier cas (dev/debug) je vous conseille d'utiliser Eclipse/Pydev comme environnement de développement, vous pourrez exécutez et debugger votre application à partir d'Eclipse (vous aurez ici aussi à mettre en place la configuration qui permettra à  Eclipse/ Pydev la reconnaissance de l'API de QGIS.

Sylvain

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |