#1 Fri 08 September 2023 08:57
- antho0023
- Participant occasionnel
- Lieu: Corse
- Date d'inscription: 28 Apr 2023
- Messages: 38
QGIS 3.32.2 (Win 11): Probl Python
Bonjour à tous. Je me permets de venir vers vous car je rencontre des problèmes sur qgis avec la console python. Dans l'optique d'accélérer mon travail, j'ai demandé à l'IA de me pondre un code pour effectuer plusieurs opérations dans un même script que je dispose ci-dessous:
Code:
# Importe les modules nécessaires from qgis.core import QgsProject, QgsLayer, QgsFeature # Récupère la couche active layer = QgsProject().activeLayer() # Insère les valeurs dans les champs layer.setFeatureValue(0, "Commune", "Valeur de la commune") layer.setFeatureValue(0, "Code INSEE", "Valeur du code INSEE") layer.setFeatureValue(0, "Source", "Valeur de la source") # Génère l'identifiant unique identifiant = layer.feature(0).attribute("Commune")[:3] + "_" + str(1) # Insère l'identifiant dans le champ layer.setFeatureValue(0, "Identifiant", identifiant) # Sauvegarde les modifications layer.save()
Lorsque j'insère ce code dans la console python avec l'insertion des bonnes valeurs, voici ce que j'obtiens:
Code:
Processing: Traceback (most recent call last): File "C:\OSGeo4W/apps/qgis/./python/plugins\processing\script\ScriptEditorDialog.py", line 260, in runAlgorithm exec(self.editor.text(), _locals) File "", line 2, in ImportError: cannot import name 'QgsLayer' from 'qgis.core' (C:\OSGeo4W/apps/qgis/./python\qgis\core\__init__.py)
J'ai pris soin d'installer la dernière version stable de python mais force de constater que cela ne change à rien.
Auriez vous déjà rencontré ce problème et si oui existe-t-il une solution ?
Pour info je tourne sous Windows 11 à jour et la version de qgis est la 3.32.2
Hors ligne
#2 Fri 08 September 2023 11:55
- Robin B
- Participant occasionnel
- Lieu: Montpellier
- Date d'inscription: 31 Jul 2023
- Messages: 14
Re: QGIS 3.32.2 (Win 11): Probl Python
Bonjour,
L'erreur indique que l'import du module QgsLayer a échoué. D'après l'API QGIS python, il me semble que cette classe n'existe pas et donc ne pas être importée.
En parcourant rapidement votre code, il me semble que ce module n'est pas nécessaire, vous pouvez essayer de le supprimer.
Concernant l'IA pour éditer des codes python, je ne sais pas laquelle vous avez utilisé, mais si il s'agit de Chat GPT, mon expérience est qu'il n'est pas très performant en pyQGIS. Il peut être utile pour donner des idées de fonctions ou de méthodes mais il est nécessaire de retoucher ensuite le code car il y a fréquemment des erreurs.
Pour des fonctions courantes en pyqgis, vous pouvez consulter de livre des recettes pyQGIS qui est très bien fait : https://docs.qgis.org/3.28/fr/docs/pyqg … index.html
Hors ligne
#3 Sun 10 September 2023 21:47
- antho0023
- Participant occasionnel
- Lieu: Corse
- Date d'inscription: 28 Apr 2023
- Messages: 38
Re: QGIS 3.32.2 (Win 11): Probl Python
Bonjour merci pour votre retour. En fait j'utilise l'IA par défaut de connaissances dans la programmation en générale. j'ai pu effectivement constater que bien souvent il y a des éléments à revoir. Pour un petit retour d'expérience, meme si là n'est pas le sujet, Chat GPT peut etre un bon allié dans l'utilisation de la calculatrice de champs. Je n'ai rencontré que peu d'erreurs même si j'ai appris à être vigilant car des fois, les réponses ne sont pas bonnes ou pertinente.
Le code que j'ai inséré a été produit lui par Bard qui ne semble pas très chaud sur le sujet. D'ailleurs même en le poussant " à la reflexion" les réponses sont toujours les mêmes.
Je vais tenter de faire passer le code de cette manière. Pour un info et pour d'éventuels autres utilsateurs qui seraient dans ce cas, je vais tenter le script avec un profil utilisateur vierge, car celui que j'utilise à l'heure actuelle me fais générer des erreurs python au démarage en lien avec cette classe d'attributs.
Hors ligne
#4 Mon 11 September 2023 08:27
- antho0023
- Participant occasionnel
- Lieu: Corse
- Date d'inscription: 28 Apr 2023
- Messages: 38
Re: QGIS 3.32.2 (Win 11): Probl Python
Petit retour matinal concernant l'execution du code sans la classe indiqué :
Code:
Traceback (most recent call last): File "C:\OSGeo4W\apps\Python39\lib\code.py", line 90, in runcode exec(code, self.locals) File "<input>", line 1, in <module> File "<string>", line 5, in <module> AttributeError: 'QgsProject' object has no attribute 'activeLayer'
C'est l'erreur retournée dans un projet vierge sans nom et avec un profil "sans erreurs". Si quelqun connait la solution
Hors ligne
#5 Mon 11 September 2023 09:38
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 266
Re: QGIS 3.32.2 (Win 11): Probl Python
Ce code est non fonctionnel et ne le sera jamais. Tout est erroné. les méthodes appelées n'existent pas.
La meilleure chose que vous puissiez faire est plutôt de vous former à la programmation pyqgis, sinon vous n'y arriverez pas.
Dernière modification par YoLecomte (Mon 11 September 2023 09:38)
Hors ligne
#6 Mon 11 September 2023 09:53
- antho0023
- Participant occasionnel
- Lieu: Corse
- Date d'inscription: 28 Apr 2023
- Messages: 38
Re: QGIS 3.32.2 (Win 11): Probl Python
Je comprends mieux le probleme. je vous remercie pour votre réponse
Hors ligne