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 :

Module reconnu en 3.5 mais pas en 3.7


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Module reconnu en 3.5 mais pas en 3.7
    Bonsoir,

    voici mon problème : le module tkinter fonctionne en python 3.5.3 mais pas en python 3.7.4.

    J'ai sur mon ordinateur ces 2 versions de Python (la 3.5 dans /usr/bin et la 3.7 dans /usr/locale/bin, je ne connais pas vraiment la différence mais je le dis au cas où).

    J'ai installé ce module de manière "propre", avec synaptic (donc avec pip3 et toutes les dépendances).

    Si je lance mon programme comme ceci : $ python3.5 <nom_prog.py>, il fonctionne correctement.

    De cette manière : $ python3.7 <mon_prog.py>, le module tkinter n'est pas reconnu (ModuleNotFoundError: No module named '_tkinter').

    Dans /usr/lib/python3.5 j'ai bien le module tkinter. Mais pourtant je l'ai aussi dans : /usr/locale/lib/python3.7

    Vous auriez une idée de pourquoi le module n'est pas reconnu ? Il est mal installé ? (j'ai bien vérifié pourtant) J'ai beau chercher je ne trouve pas, j'espère que vous pourrez m'aider merci d'avance !

    Nestarym.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Nestarym Voir le message
    Vous auriez une idée de pourquoi le module n'est pas reconnu ? Il est mal installé ?
    Normalement tkinter est inclus dans Python mais ceux qui s'occupent du packaging sur Linux en ont fait un package à part (c'est pareil pour IDLE).
    Il faut installer aussi python3-tk, voire aussi python3-imaging-tk.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Salut, merci de ta réponse.

    J'ai déjà installé python3-tk à l'aide de Synaptic, et d'ailleurs c'est après cela que ça a fonctionné en python 3.5. Mais ça ne fonctionne pas en 3.7

    Quant à python3-imaging-tk, il me dit qu'il ne peut pas être installé mais qu'il existe dans la base et que le paquet python3-pil.imagetk le remplace.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    C'est bon, problème résolu ^^

    J'avais python3.7 qui s'était installé dans /usr/local/bin, et mon python3.5 était dans /usr/bin.

    J'ai réinstallé python3.7, en le forçant à aller dans /usr/bin cette fois, et ma librairie fonctionne

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Nestarym Voir le message
    J'ai déjà installé python3-tk à l'aide de Synaptic, et d'ailleurs c'est après cela que ça a fonctionné en python 3.5. Mais ça ne fonctionne pas en 3.7
    Les fichiers vont dans l'arborescence Python. S'il ne trouve pas _tkinter (qui est une bibliothèque partagée), c'est que vous ne l'avez pas correctement installé (ou que vous n'avez pas installé le package python-tk correspondant à ce python là).

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

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Nestarym Voir le message
    J'ai sur mon ordinateur ces 2 versions de Python (la 3.5 dans /usr/bin et la 3.7 dans /usr/locale/bin, je ne connais pas vraiment la différence mais je le dis au cas où).
    Le dossier "/usr" est le dossier des logiciels "officiels" d'une distribution Linux (les logiciels qui s'installent automatiquement à l'installation). Le dossier "/usr/local" est le dossier des logiciels qu'on installe soi-même "en plus" (quand on télécharge un source et qu'on le compile soi-même).

    Le souci arrive quand on installe soi-même une version différente d'un logiciel officiel déjà installé. On l'a alors la version X dans /usr/bin" et la version Y dans "/usr/local/bin". Mais celui qui se lance quand on l'appelle est le premier trouvé (par rapport à la variable PATH). Ou alors on peut "forcer" en nommant spécifiquement celui qu'on veut (taper par exemple la commande "/usr/local/bin/python" au lieu de "python").
    Et si on tente de régler le souci en supprimant la version "officielle" (en théorie c'est possible puisqu'on installe une version plus récente) on se heurte alors au problème de dépendance des paquets (en désintallant le logiciel "officiel" on va alors désinstaller tout ce qui en a besoin et il faurdra alors ensuite les installer manuellement).

    Bref Linux on peut jouer avec mais c'est pas toujours bien facile...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/12/2016, 18h04
  2. [Disque Dur] DD externe reconnu par windows 8 mais pas par le bios
    Par Marty_and_Doc dans le forum Périphériques
    Réponses: 8
    Dernier message: 19/02/2015, 22h15
  3. Objet existant reconnu dans une fonction mais pas dans une autre
    Par Jiyuu dans le forum Général Python
    Réponses: 0
    Dernier message: 20/09/2011, 18h19
  4. Réponses: 13
    Dernier message: 11/03/2010, 11h29
  5. Réponses: 4
    Dernier message: 14/10/2008, 16h29

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