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 :

ça a fonctionné, ça marche plus


Sujet :

Python

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut ça a fonctionné, ça marche plus
    Bonjour à tous,

    J'utilise, Python 3.6 avec Anaconda et spider et je suis nouveau avec l'utilisation de Python.
    Hier j'ai écrit un code qui fonctionné:

    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
     
    import matplotlib
    import matplotlib.pyplot as plt
     
    #definition of x and y
    x = array([1, 3, 4, 6])
    y = array([2, 3, 5, 1])
    y2=cos(x)
     
    fig = plt.figure()
    plot(x, y,"r", label='triangle')
    plot(x,y2,"b:o", label='cos')
    plot(x3,y3, label='Loaded from file!')
    title("courbe")
    legend()
    xlabel('X')
    ylabel('Y')
    #
    ##Outpur the plots
    #show()
     
    fig.savefig('testpylab.png')
    j'ai quitté et éteint mon ordinateur, ce matin je le rallume et voici les erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x = array([1, 3, 4, 6])
     
    NameError: name 'array' is not defined
    Je n'ai rien touché entre-temps juste fermé et éteint..

    De même avec un autre code qui fonctionné hier avant de fermer et éteindre:

    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
    import matplotlib
    import matplotlib.pyplot as plt
     
    a=np.loadtxt('mon.txt', skiprows=1, usecols=range(1,30))
     
    som=a[1,:]+a[2,:]
    cur=a[2,:]
    sa=a[1,:]
    sa2=a[1,:]+a[2,:]
    sa2[0]=0
     
    for i in range(len(som)-1):
        sa2[i+1]=abs(som[i+1]-som[i])
     
    x = range(29)
    fig = plt.figure()
    plot(x, sa2,"r", label='sa2')
    plot(x, som,"b", label='Somme')
    plot(x, cur,"g", label='Cur')
    plot(x, Sa,"y:o", label='Sa')
    legend()
    xlabel('Temps')
    ylabel('Valeur')
     
    fig.savefig('test.png')
    ce matin j'obtiens cette erreur;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     plot(x, sa2,"r", label='sa2')
     
    NameError: name 'plot' is not defined
     
    <matplotlib.figure.Figure at 0x116a3f6d8>
    Y a eut une mise à jour des librairies entre-temps ou ..??
    Là je suis vraiment sans idée ..

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par défaut
    Salut,

    Citation Envoyé par DJEcalcul Voir le message
    j'ai quitté et éteint mon ordinateur, ce matin je le rallume et voici les erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x = array([1, 3, 4, 6])
     
    NameError: name 'array' is not defined
    Le nom "array" n'étant pas une instruction de base du langage, impossible qu'il soit définit dans l'import d'une bibliothèque (ici par exemple from numpy import array).
    Donc la question n'est pas de savoir pourquoi le programme ne fonctionne plus aujourd'hui (il manque des imports) mais par quelle magie il a bien pu fonctionner hier.
    note: peut être que vous travailler à la console, peut être que vous avez oublié de sauvegarder la dernière version de votre code, ... en tous cas, c'est plus un soucis de votre côté et non du langage.

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

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Le nom "array" n'étant pas une instruction de base du langage, impossible qu'il soit définit dans l'import d'une bibliothèque (ici par exemple from numpy import array).
    Donc la question n'est pas de savoir pourquoi le programme ne fonctionne plus aujourd'hui (il manque des imports) mais par quelle magie il a bien pu fonctionner hier.
    note: peut être que vous travailler à la console, peut être que vous avez oublié de sauvegarder la dernière version de votre code, ... en tous cas, c'est plus un soucis de votre côté et non du langage.

    - W
    Merci pour ta réponse.
    le "plot" est aussi une instruction qui n'existe pas?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par défaut
    Citation Envoyé par DJEcalcul Voir le message
    Merci pour ta réponse.
    le "plot" est aussi une instruction qui n'existe pas?
    Et oui: elle peut être définie via from matplotlib.pyplot import plot.

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

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Et oui: elle peut être définie via from matplotlib.pyplot import plot.

    - W
    Merci à vous.

    Pour le 2ème code j'ai ajouté plt.plot et ça fonctionne, mais je suis certain que j'en avais pas besoin hier ..

  6. #6
    Membre averti Avatar de Oblinky
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 12
    Par défaut
    Bonjour,


    Un petit point sur les imports dans Python qui vous sera peut-être utile, je prends le module numpy comme exemple :

    Code Python : 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
     
    ## Méthode 1
    import numpy
    # Il faudra ensuite utiliser les fonctions du module en rappelant le nom du module, par exemple :
    x = numpy.array(...)
     
    ## Méthode 2
    import numpy as np
    # Alors on utilisera les fonctions du module de cette façon :
    x = np.array(...)
     
    ## Méthode 3
    from numpy import array
    # En commençant l'import par from, pas besoin de rappeler les nom du module pour utiliser les fonctions importées :
    x = array(...)
     
    ## Méthode 4
    from numpy import *
    # Pour importer toutes le fonctions du module.


    Ici vous avez importé matplotlib de la deuxième des façons que j'ai évoquées, comme la fonction plot vient de ce module, vous devez l'appeler en écrivant plt.plot(...).
    Si vous voulez vous passer des plt.nom_de_fonction, vous pouvez écrire from matplotlib.pyplot import *

    Peut-être que cela fonctionnait hier car vous aviez écrit une commande de type from matplotlib.pyplot import plot, exécuté le programme, puis supprimé cette ligne ; mais le module était toujours importé tant que vous n'aviez pas fermé votre interpréteur Python.
    On peut aussi importer les modules directement dans la console (mais il est préférable de les importer dans le script où ils sont utilisés).

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Citation Envoyé par Oblinky Voir le message
    Bonjour,
    .. mais le module était toujours importé tant que vous n'aviez pas fermé votre interpréteur Python.
    Voilà qui me semble être une excellente explication!

    Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Projet qui marche sous Eclipse ne marche plus en JAR
    Par leminipouce dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 26/10/2005, 18h59
  2. [SEND TO]Menu contextuel "send to" ne marche plus
    Par Hoegaarden dans le forum Windows XP
    Réponses: 8
    Dernier message: 13/10/2005, 11h41
  3. [FOP] Le generation de PDF ne marche plus
    Par Sherkhan dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 23/03/2005, 08h26
  4. [CR] Mes rapports (.PDF) ne marche plus depuis acrobat 7
    Par theflamme dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 10/01/2005, 15h21
  5. ma fonction marche plus sur le serveur...
    Par CDRIK dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/10/2004, 04h24

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