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 !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 11 July 2013 20:16

emunasa
Juste Inscrit !
Date d'inscription: 5 Jul 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 Fri 12 July 2013 13:16

tqhien
Participant actif
Lieu: Clamart
Date d'inscription: 22 Apr 2011
Messages: 78

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 Sat 13 July 2013 14:23

emunasa
Juste Inscrit !
Date d'inscription: 5 Jul 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 Mon 15 July 2013 10:50

tqhien
Participant actif
Lieu: Clamart
Date d'inscription: 22 Apr 2011
Messages: 78

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 Wed 04 January 2017 15:13

lesjj10
Participant occasionnel
Date d'inscription: 18 Dec 2014
Messages: 16

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 (Wed 04 January 2017 15:15)

Hors ligne

 

#6 Wed 04 January 2017 15:25

FPNO
Participant actif
Date d'inscription: 24 Oct 2013
Messages: 137

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 Wed 04 January 2017 17:30

Anthony Philibert
Juste Inscrit !
Date d'inscription: 25 Oct 2016
Messages: 5

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 Fri 06 January 2017 16:23

lesjj10
Participant occasionnel
Date d'inscription: 18 Dec 2014
Messages: 16

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 Mon 09 January 2017 08:54

Sylvain PIERRE
Participant assidu
Lieu: Strasbourg
Date d'inscription: 6 Sep 2005
Messages: 170

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