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 :

les modules dans Python 3


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut les modules dans Python 3
    Bonjour
    je m'initie à Python 3. Je suis en train de tester le module turtle ou le module Tkinter.
    Dans l'environnement Idle, pas de souci. Si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> from turtle import *
    >>> forward(200)
    >>> left(90)
    >>> color(red)
    j'obtiens bien le bon dessin
    Si je tape ces lignes dans mon éditeur et que j'exécute le script, une erreur apparait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    forward(200)
    NameError: name 'forward' is not defined
    Quelqu'un a t'il une idée pour corriger cette erreur ?
    Merci par avance
    (Je suis sous mac 10.6 et python 3)

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Cela ne viens pas de Python 3 et si ce n'est que c'est color('red') le code est bon.
    L'erreur viens sans doute de là : Si je tape ces lignes dans mon éditeur et que j'exécute le script, une erreur apparait
    Votre message d'erreur n'est pas complet. Comprendre qu'après Traceback (most recent call last): vous devez avoir le nom du fichier py importé d’où viens l'erreur.
    En fait je pense que vous avez enregistrer votre fichier sous le nom de turtle.py, qu'il s'importe lui même et qu'il ne contient pas de 'forward' bien sur.
    Ou alors vous avez un turtle.py qui n'est pas bon dans le path.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonsoir
    Merci beaucoup pour cette réponse
    Voilà le message complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "tortue.py", line 1, in <module>
        from turtle import *
      File "mon_repertoire_utilisateur/turtle.py", line 2, in <module>
        forward(200)
    NameError: name 'forward' is not defined
    effectivement, le module à insérer n'est pas au bon endroit et mon "path" est mal renseigné. Si je mets mon script dans le répertoire contenant les modules pas de souci.

    Mais un autre script contenant l'importation du module de math ne pose pas de problème identique avec l'utilisation des fonctions comme pi, sqrt ou sin
    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from math import *
    n = input("un nombre ")
    theta = pi/6
    print("racine carree de n = ",sqrt(float(n)),"\n et sin theta = ",sin(theta))

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 808
    Points : 7 086
    Points
    7 086
    Par défaut
    Au lieu de nommer votre fichier turtle.py nommez le autrement, c'est le seul problème.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Vous avez votre réponse.
    Citation Envoyé par MoiCoucou Voir le message
    from turtle import *
    File "mon_repertoire_utilisateur/turtle.py", line 2, in <module>
    forward(200)
    NameError: name 'forward' is not defined
    Comme le dit fred1599 renommez votre fichier et évitez d'utiliser le nom d'un module pour tester celui ci.

    @++ et bonne découverte.
    Merci d'utiliser le forum pour les questions techniques.

  6. #6
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonsoir
    mon script se nomme bien tortue.py ; le module se nomme turtle.py
    J'ai essayé de modifier .bashrc mais cela ne change rien
    Ce qui est étrange c'est que je n'ai pas de problème avec le module de math
    Merci par avance

  7. #7
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    math est un module interne de Python, pas Tkinter ou turtle.
    Un exemple
    Soit le fichier sys.py (sys est aussi un module interne) dans mon home.
    sys.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def tutu():
        return True
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import sys
    >>> dir(sys)
    ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'int_info', 'intern', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setfilesystemencoding', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
    >>> sys.tutu()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'module' object has no attribute 'tutu'
    Maintenant si je renomme mon sys.py en Tkinter.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> import Tkinter
    >>> dir(Tkinter)
    ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'tutu']
    @+
    Merci d'utiliser le forum pour les questions techniques.

Discussions similaires

  1. [Joomla!] Retrouver la requete SQL qui affiche les modules dans la zone admin
    Par vladock dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 04/10/2012, 12h12
  2. Importation de module dans Python
    Par mikeduff dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 28/03/2009, 08h49
  3. Ou ranger les objets dans Python ?
    Par LLEJEUNE1 dans le forum Général Python
    Réponses: 15
    Dernier message: 24/06/2008, 11h58
  4. Le système de modules dans les CMS
    Par UN|X` dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 20/08/2006, 00h07
  5. Réponses: 9
    Dernier message: 06/06/2006, 22h05

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