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 :

Débutant , souci avec cxfreeze


Sujet :

Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Débutant , souci avec cxfreeze
    Bonjour,

    Je profite de cette discussion.
    Je débute sous Python et j'ai installé la version 3.6.12 sous SEVEN PRO 32 bits.
    J'ai écrit un petit programme qui fonctionne très bien sous python et que je voudrais maintenant rendre exécutable. Pour cela, j'ai installé cxfreeze.

    J'ai fait un test de création d'exécutable avec un petit hello.py qui ne fait qu'afficher un "hello", et ça fonctionne.

    Malheureusement, malgré toute ma bonne volonté et après avoir lu pas mal de tutos, je n'arrive à rien avec mon programme !

    cxfreeze-quickstart me crée bien un exécutable mais qui me sort une erreur ligne 10 et "ModuleNotfounderror : 'No module named serial'

    En ligne 10 de mon code, j'ai bien 'import serial'

    Quelle erreur ai-je commis ?

    Merci pour votre aide

  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,

    cxfreeze fait ce qu'il peut pour trouver les différentes bibliothèques utilisées.
    S'il oublie d'inclure une bibliothèque ou en ajoute une par erreur, il faut le préciser dans la liste des packages ou des excludes de setup.py.... et cxfreeze-quickstart n'y met pas grand chose.

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

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour et merci,

    C'est ce que j'ai compris et j'ai continué à chercher des solutions...
    Apparemment, cxfreeze ne trouve pas le module serial. J'ai donc rajouté dans le fichier setup :

    packages['serial']

    Il ne trouve toujours pas. J'ai trouvé pas mal de problèmes avec ce module sur les forums, et ai essayé 'serial.win32' et autres, mais rien n'y fait !!

    Je commence à désespérer ! Moi, qui pensait que ce serait une formalité et qu'écrire le programme serait un défi pour moi... C'est tout l'inverse !

    Merci pour toute suggestion...




    Citation Envoyé par wiztricks Voir le message
    Salut,

    cxfreeze fait ce qu'il peut pour trouver les différentes bibliothèques utilisées.
    S'il oublie d'inclure une bibliothèque ou en ajoute une par erreur, il faut le préciser dans la liste des packages ou des excludes de setup.py.... et cxfreeze-quickstart n'y met pas grand chose.

    - W

  4. #4
    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 TK5EP Voir le message
    packages['serial']

    Il ne trouve toujours pas. J'ai trouvé pas mal de problèmes avec ce module sur les forums, et ai essayé 'serial.win32' et autres, mais rien n'y fait !!
    C'est quoi cette syntaxe? dans setup.py vous devez avoir une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    build_exe_options = {"packages": [], "excludes": []}}
    si vous voulez inclure "serial":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    build_exe_options = {"packages": [ "serial", ], "excludes": []}}
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour et merci,

    Oui, la syntaxe donnée n'était pas correcte, je l'avais transcrite de tête...

    Le lancement de cxfreeze se déroule. La seule référence à serial que je vois défiler lors de l'exécution du setup.py est curieuse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? serial imported from midi2ts590__main__
    Mais l'exe créé ne fait que 17 ko et quand on le lance, il affiche sur la dernière ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "ModuleNotFoundError : no module named 'serial'
    Il manque manifestement un module... J'ai installé pyserial par pip via Internet et en téléchargeant le module + installation locale. Rien n'y fait...

    Dans mon script python j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import serial
    from serial import SerialException
    Merci,

  6. #6
    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
    Désolé mais je ne vois pas ce que vous avez bien pu faire à votre environnement Python pour obtenir un comportement aussi bizarre. ? serial imported from midi2ts590__main__ suggère qu'il récupère autre chose que le serial qui devrait être dans ...\lib\site-packages\serial.
    Si votre code ne contient que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import serial
    from serial import SerialException
    il ne devrait pas planter avec "ModuleNotFoundError : no module named 'serial' mais avec ImportError: cannot import name 'SerialException' (il a quand même mis un module serial même si ce n'est pas le bon).
    De plus, il n'y a pas de raisons (sauf tripatouillages créatifs) que Python trouve un autre serial que cx_Freeze.

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

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Merci pour votre réponse,

    Je ne vois pas non plus ce que j'aurais pu faire de bizarre.. Je n'ai rien tripatouillé...

    J'ai installé Python 3.6 sur ma machine SEVEN PRO.
    J'ai installé serial par PIP.

    Je viens de vérifier et je n'ai pas de dossier serial dans : \AppData\Local\Programs\Python\Python36-32\lib\site-packages\

    Alors que j'y trouve bien un dossier pygame que j'ai installé aussi pour utiliser leur librairie Midi. Ce serial devrait-il avoir été installé par cx_freeze ou lors de l'installation du module serial ??

    Le problème viendrait peut-être d'une installation bizarre du module serial ? Comment trouver où il a été installé ?

    Pour info, j'ai fait l'installation sur 2 machines Seven pro et j'ai le même comportement !!

    Merci pour votre aide et le temps consacré à me répondre.

  8. #8
    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 TK5EP Voir le message
    Je ne vois pas non plus ce que j'aurais pu faire de bizarre.. Je n'ai rien tripatouillé...

    J'ai installé Python 3.6 sur ma machine SEVEN PRO.
    J'ai installé serial par PIP.

    Je viens de vérifier et je n'ai pas de dossier serial dans : \AppData\Local\Programs\Python\Python36-32\lib\site-packages\
    Par défaut, pip installe dans racine\lib\site-packages. Si vous ne le trouvez pas c'est qu'il est "ailleurs" et le plus probable est que vous ayez plusieurs environnement Python installés sur votre système - c'est pas interdit, mais il faut savoir quel environnement sera modifié en modifiant le path, en utilisant le py launcher,...
    Voir la documentation sur l'utilisation de Python sur Windows.

    Citation Envoyé par TK5EP Voir le message
    Alors que j'y trouve bien un dossier pygame que j'ai installé aussi pour utiliser leur librairie Midi. Ce serial devrait-il avoir été installé par cx_freeze ou lors de l'installation du module serial ??
    Avant de passer votre application à la moulinette cx_Freeze, vous avez du la tester et donc avoir installé au préalable la bibliothèque pyserial.

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

  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Ma variable PATH a bien les chemins vers les dossiers Pyhton36-32 et Python36-32\scripts

    La commande py retourne bien la version 3.6.0

    Mon application fonctionne parfaitement. Elle gère une console Midi pour laquelle je récupère les commandes Midi des boutons et Jog qui sont transcodées et j'envoie des commandes sur un port série à un équipement qui est piloté par un port série.

    Tout ça fonctionne à merveille, c'est donc bien pyserial est bien installé et reconnu...

    Je viens de relancer une installation de pyserial par PIP et il me répond qu'il n'y a rien à faire car déjà installé. Pyserial-3.2.1-py3.6.egg est bien dans le répertoire lib\site-packages.

    Je ne l'avais pas vu, je recherchais un dossier pyserial !!

  10. #10
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    En désespoir de cause, j'ai désinstallé pyserial avec pip uninstall , puis réinstallé.
    Il m'a finalement créé un dossier serial dans site-packages.

    Cx_freeze semble ne plus bloquer sur l'import se serial !

    J'ai une autre erreur maintenant...
    J'ai utilisé la commande exit() dans mon programme pour terminer son exécution après une gestion d'erreur. Cxfreeze me dit que : "NamError : name exit is not defined"
    Je n'utilise peut-être pas exit() comme il le faudrait .. ?

    Je vais rechercher ce que c'est.

    Merci pour votre aide qui m'a mis dans la bonne direction !!

    Edité : j'ai remplacé exit() par sys.exit(1) et tout roule !! J'ai bien un exécutable avec une DLL et tout fonctionne ... Ouf !

Discussions similaires

  1. Débutant: souci avec frame dans une autre frame
    Par kerlouan dans le forum Général Python
    Réponses: 0
    Dernier message: 21/04/2016, 19h16
  2. [Débutant] Léger soucis avec les Types
    Par Zooix dans le forum Haskell
    Réponses: 6
    Dernier message: 16/06/2009, 13h58
  3. [WD9] [Débutant] Souci avec une simple requête
    Par unix27 dans le forum WinDev
    Réponses: 4
    Dernier message: 04/04/2006, 00h54
  4. [Débutant] soucis avec un petit prog
    Par Ludo75 dans le forum C++
    Réponses: 5
    Dernier message: 12/09/2005, 20h41
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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