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é ?

#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

 

Pied de page des forums

Powered by FluxBB