IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

bug dans l'execution du script python


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 67
    Par défaut bug dans l'execution du script python
    Python 2.7

    Bonjour,
    lorsque j'exécute le script python, juste avant la fin, une fenètre Microsoft visual c++ runtime Library apparait et stop l'avancée du script!
    à votre avis pourquoi il y a ce blocage?

    Merci d'avance
    cdlt
    Nom : Capture.JPG
Affichages : 238
Taille : 110,6 Ko

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par Rizcolas62 Voir le message
    lorsque j'exécute le script python, juste avant la fin, une fenètre Microsoft visual c++ runtime Library apparait et stop l'avancée du script!
    à votre avis pourquoi il y a ce blocage?
    Probablement parce qu'il y a un bug quelque part
    Mais pour le corriger, il faut commencer par essayer de comprendre ce que fait le script et/ou quelles instructions provoquent le plantage.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 67
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Probablement parce qu'il y a un bug quelque part
    Mais pour le corriger, il faut commencer par essayer de comprendre ce que fait le script et/ou quelles instructions provoquent le plantage.

    - W
    ok pas de soucis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    """
    Name: ImportCADandMerge.py
     
    Description: Imports and merges polylines
                 from one workspace into a single feature class
    Author: ESRI
     
    http://desktop.arcgis.com/fr/desktop/latest/manage-data/cad/using-python-to-load-cad-data.htm
     
    """
    # Import system modules
    import arcpy
     
    #-------------------------------------------------------------------------------
    # MAIN
    #-------------------------------------------------------------------------------
    def main():
        """
        Main du module : importe un calque de plusiuers DWG
                        dans une classe d'entites d'une FGDB (elle doit exister)
        """
        # Ecrase la classe d'entites cible si elle existe
        arcpy.env.overwriteOutput = True
     
        # Espace de travail ou sont les fichiers DWG
        arcpy.env.workspace = r'G:\Expert\03_DGST\Poubelle\DAOP1'
     
        # Create a value table that will hold the input feature classes for Merge
        vtab = arcpy.ValueTable()
     
        # WhereClause : calque DWG que l'on veut importer
        whereclause = "\"Layer\" = 'R-EPIC-CANA'"
     
        # Choix des champs que l'on veux garder : Layer, Color, DocName et DocType
        champsaconsever = ["Layer", "Color", "DocName"]
     
        #compteur des fichiers DWG
        nbfiledwg = 0
        # Step through each dataset in the list
        for fdataset in arcpy.ListDatasets('*.dwg'):
            layername = u'{0}'.format(fdataset)
            layername = layername.replace(u'É', 'E')
            layername = layername.replace(' +', 'plus')
            layername = layername.replace(' -', 'moins')
            layername = layername.replace(' ', '_')
            print u'_{0}_'.format(layername)
     
            # Get the fields from the input
            fields = arcpy.ListFields(fdataset)
            # Create a fieldinfo object
            fieldinfo = arcpy.FieldInfo()
            # Iterate through the fields and set them to fieldinfo
            for field in fields:
                if field.name in champsaconsever:
                    fieldinfo.addField(field.name, field.name, "VISIBLE", "")
                else:
                    fieldinfo.addField(field.name, field.name, "HIDDEN", "")
     
            # Select only the Polyine features on the drawing layer (whereclause)
            arcpy.MakeFeatureLayer_management(u'{0}\Polyline'.format(fdataset)
                                              , layername
                                              , whereclause
                                              , ''
                                              , fieldinfo)
            # Creation ajout de la couches dans la liste des couches a fusionner
            try:
                vtab.addRow(layername)
                nbfiledwg = nbfiledwg +1
            except Exception, errordesc:
                print arcpy.GetMessages()
                errmesg = 'PYTHON ERRORS: {0}'.format(errordesc)
                print errmesg
                print "Echec de l'ajout de la couche {0} ({1})".format(layername, fdataset)
     
        # Merge the CAD features into one feature class
        mergefc = r'G:\Expert\03_DGST\Poubelle\DAO.gdb\EPIC'
        try:
            arcpy.Merge_management(vtab, mergefc)
        except Exception, errordesc:
            print arcpy.GetMessages()
            errmesg = 'PYTHON ERRORS: {0}'.format(errordesc)
            print errmesg
     
        # Fin
        print u'{0} fichiers DWG importes et fusionnes'.format(nbfiledwg)
     
        return True
     
    if __name__ == '__main__':
        STATUS = main()
     
     
    #===============================================================================

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par Rizcolas62 Voir le message
    ok pas de soucis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    """
    Name: ImportCADandMerge.py
     
    Description: Imports and merges polylines
                 from one workspace into a single feature class
    Author: ESRI
     
    http://desktop.arcgis.com/fr/desktop/latest/manage-data/cad/using-python-to-load-cad-data.htm
     
    """
    # Import system modules
    import arcpy
     
    #-------------------------------------------------------------------------------
    # MAIN
    #-------------------------------------------------------------------------------
    def main():
        """
        Main du module : importe un calque de plusiuers DWG
                        dans une classe d'entites d'une FGDB (elle doit exister)
        """
        # Ecrase la classe d'entites cible si elle existe
        arcpy.env.overwriteOutput = True
     
        # Espace de travail ou sont les fichiers DWG
        arcpy.env.workspace = r'G:\Expert\03_DGST\Poubelle\DAOP1'
     
        # Create a value table that will hold the input feature classes for Merge
        vtab = arcpy.ValueTable()
     
        # WhereClause : calque DWG que l'on veut importer
        whereclause = "\"Layer\" = 'R-EPIC-CANA'"
     
        # Choix des champs que l'on veux garder : Layer, Color, DocName et DocType
        champsaconsever = ["Layer", "Color", "DocName"]
     
        #compteur des fichiers DWG
        nbfiledwg = 0
        # Step through each dataset in the list
        for fdataset in arcpy.ListDatasets('*.dwg'):
            layername = u'{0}'.format(fdataset)
            layername = layername.replace(u'É', 'E')
            layername = layername.replace(' +', 'plus')
            layername = layername.replace(' -', 'moins')
            layername = layername.replace(' ', '_')
            print u'_{0}_'.format(layername)
     
            # Get the fields from the input
            fields = arcpy.ListFields(fdataset)
            # Create a fieldinfo object
            fieldinfo = arcpy.FieldInfo()
            # Iterate through the fields and set them to fieldinfo
            for field in fields:
                if field.name in champsaconsever:
                    fieldinfo.addField(field.name, field.name, "VISIBLE", "")
                else:
                    fieldinfo.addField(field.name, field.name, "HIDDEN", "")
     
            # Select only the Polyine features on the drawing layer (whereclause)
            arcpy.MakeFeatureLayer_management(u'{0}\Polyline'.format(fdataset)
                                              , layername
                                              , whereclause
                                              , ''
                                              , fieldinfo)
            # Creation ajout de la couches dans la liste des couches a fusionner
            try:
                vtab.addRow(layername)
                nbfiledwg = nbfiledwg +1
            except Exception, errordesc:
                print arcpy.GetMessages()
                errmesg = 'PYTHON ERRORS: {0}'.format(errordesc)
                print errmesg
                print "Echec de l'ajout de la couche {0} ({1})".format(layername, fdataset)
     
        # Merge the CAD features into one feature class
        mergefc = r'G:\Expert\03_DGST\Poubelle\DAO.gdb\EPIC'
        try:
            arcpy.Merge_management(vtab, mergefc)
        except Exception, errordesc:
            print arcpy.GetMessages()
            errmesg = 'PYTHON ERRORS: {0}'.format(errordesc)
            print errmesg
     
        # Fin
        print u'{0} fichiers DWG importes et fusionnes'.format(nbfiledwg)
     
        return True
     
    if __name__ == '__main__':
        STATUS = main()
     
     
    #===============================================================================
    Pour faire tourner votre script (et reproduire votre problème), il faut installer Python 2.6, Arcpy +... la base de données qui va avec, et trouver l'instruction qui plante en exécutant le programme pas à pas avec un debugger ou en ajoutant des print.
    C'est un boulot qui prend du temps et dont le résultat n'intéresse à priori que vous: pas grand monde le fera à votre place. En tout cas, pas moi: vous tournez encore sous Python 2.6, vous n'avez pas écrit ce script, on ne sait pas comment vous avez installé arcpy - c'est là dedans qu'il y a un soucis -: allez toquer à la porte d'ESRI (les auteurs de la chose qui vivent du support de leur produit).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,


    Et avec une liste de .dwg plus raisonnable, c'est pareil ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 67
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,


    Et avec une liste de .dwg plus raisonnable, c'est pareil ?
    Oui cela marche! mais il y a t'il moyen du coup d'utiliser le script par tranche de 40 fichiers.
    car actuellement le script prend les 120 fichiers d'un coup et ensuite combine le tout.

Discussions similaires

  1. [Python 2.X] Execution terminal script python, pipe
    Par Naymux dans le forum Général Python
    Réponses: 8
    Dernier message: 19/06/2014, 11h11
  2. executer deux script python en paralléle
    Par amysuu dans le forum Général Python
    Réponses: 12
    Dernier message: 01/05/2011, 12h40
  3. Executer un script Python depuis un code C++
    Par Niak74 dans le forum C++
    Réponses: 4
    Dernier message: 02/02/2011, 10h19
  4. Réponses: 0
    Dernier message: 12/11/2009, 12h33
  5. [Système] Executer un script python
    Par Analfabete dans le forum Langage
    Réponses: 1
    Dernier message: 08/06/2008, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo