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

Bibliothèques tierces Python Discussion :

problème d'installation de la bibliothèque pyserial


Sujet :

Bibliothèques tierces Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut problème d'installation de la bibliothèque pyserial
    Bonjour,

    je suis étudiant en PSI et pour un projet de fin d'année (TIPE), j'ai besoin d'utiliser la bibliothèque pyserial pour communiquer entre mon arduino et ma distribution python (j'ai téléchargé pyzo et spyder 3.4.3).
    Je précise que je suis sur MAC OS (version 10.10.5).

    J'ai téléchargé la bibliothèque pyserial-2.7.tar.gz sur le site internet suivant:
    https://pypi.python.org/pypi/pyserial

    Ensuite, j'ai entré les commandes suivantes dans le terminal:
    cd Downloads/
    tar -xzf pyserial-2.7.tar.gz
    cd pyserial-2.7
    sudo python setup.py install

    Enfin, j'ai voulu tester un programme python utilisant cette bibliothèque et j'ai systématiquement un message d'erreur du type:

    runfile('/Users/PrenomNom/test_delete2.py', wdir='/Users/PrenomNom')
    File "//anaconda/lib/python3.4/site-packages/serial/serialposix.py", line 58
    except IOError, e:
    ^
    SyntaxError: invalid syntax

    Pouvez-vous me dire comment résoudre ce problème?

    Merci beaucoup pour votre aide.

    Max

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

    Compte tenu du message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    File "//anaconda/lib/python3.4/site-packages/serial/serialposix.py", line 58
    except IOError, e:
    ^
    SyntaxError: invalid syntax
    vous avez installé un kit qui a été écrit pour Python2 sur un Python3

    Utilisez plutôt la commande pip pour installer vos packages:
    (après avoir détruit le répertoire //anaconda/lib/python3.4/site-packages/serial)

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour votre réponse rapide!

    Cependant, comment détruire ce répertoire?
    J'imagine qu'il faut rentrer des instructions dans le terminal? ou peut-etre directement depuis la console python?

    De plus, pour renter la commande "pip install pyserial", dois-je le faire directement depuis la console ou dois-je le faire à partir du terminal (si oui, a partir de quelle "directory"? )

    Si j'ai bien compris, la bibliothèque que j'ai téléchargé est faite pour python 2 donc dans mon cas, elle est inutile et par conséquent, spyder reconnait automatiquement la bonne bibliothèque "pyserial" à installer?

    Encore merci pour votre aide.

    Max

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

    A priori, vous utilisez "anaconda". Çà parle Python mais çà vient avec son gestionnaire de packages. C'est avec ce gestionnaire de package là qu'il faut installer pyserial.
    (mais je n'utilise pas ce tout-en-un, désolé).

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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Bonjour wiztricks,

    j'ai finalement réussi à détruire le répertoire.
    Via le terminal j'ai rentré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo rm nom_du_repertoire
    Ensuite, j'ai rentré sur le terminal la commande et l'ordinateur m'a indiqué que la bibliothèque pyserial pour python 3 s'est bien installée mais qu'il fallait procéder à une mise à jour en rentrant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pip install pyserial --upgrade
    Après avoir fait l'installation puis la mise à jour, je pensais que le problème était résolu mais en testant un code sur python j'ai un nouveau message d'erreur:


    File "//anaconda/lib/python3.4/site-packages/serial/__init__.py", line 21, in <module>
    from serial.serialposix import *

    ImportError: No module named 'serial.serialposix'

    Savez-vous d'ou vient ce problème?

    Effectivement j'utilise Anaconda, j'ai aussi utilisé PYZO mais je l'ai dé-installé, je vais le remettre et essayer avec, peut être que cela fonctionnera mieux...
    Qu'utilisez-vous comme distribution python?

    Merci beaucoup pour votre aide!

    Max

  6. #6
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Regarde si il ne l'a pas installé dans /usr/local/lib/python3.4/dist-packages, auquel cas il faut rajouter ce chemin au path au tout début de ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import sys
    sys.path.append("/usr/local/lib/python3.4/dist-packages")

    Edit: Jette un oeil ici: http://conda.pydata.org/docs/test-dr...aging-packages

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Bonjour Vincent,

    merci pour votre réponse.

    J'ai remis dans le terminal pour voir ou la bibliothèque a été installée (à priori c'est installé dans "/anaconda/lib/python3.4/site-packages"
    Puis dans mon code test sur spyder j'ai rentré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import sys
    sys.path.append("/anaconda/lib/python3.4/site-packages")
    import serial
    Sans doute que j'ai raté une étape car mon message d'erreur est toujours affiché.

    Enfin, votre lien vers conda est très instructif, j'ai pu constater en mettant dans le terminal que toutes les bibliothèques pyserial étaient en 2.7

    Max

  8. #8
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Heu, c'est pyserial qui est versionné 2.7.

    Par contre ce que j'ai vu c'est que c'est une version pour Python 2 et que 2to3 est appliqué lors de l'installation ...

    Si tu rentres ceci dans un terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    python3
    import pyserial
    Donc hors environnement anaconda.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Merci pour la clarification, je n'avais pas bien compris les différences entre la version 3.4 de python et la version 2.7 de pyserial... Je pensais qu'il fallait une version 3.4 de pyserial...

    en mettant dans le terminal (et après avoir mis python3): j'ai ceci:
    >>> import pyserial
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: No module named 'pyserial'

    Par conséquent j'ai essayé dans le terminal: et j'ai ceci:

    >>> import serial
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "//anaconda/lib/python3.4/site-packages/serial/__init__.py", line 21, in <module>
    from serial.serialposix import *
    ImportError: No module named 'serial.serialposix'

    Donc si j'ai bien compris, le problème ne vient pas d'Anaconda?

    Max

  10. #10
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Cela voudrait dire tu n'as pas ce fichier ?

    /anaconda/lib/python3.4/site-packages/serial/serialposix.py

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

    Citation Envoyé par maxpsi Voir le message
    Donc si j'ai bien compris, le problème ne vient pas d'Anaconda?
    Il semble que vous ayez plusieurs environnements Python installés.

    Essayez d'utiliser le "pip" associé à Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 -m pip install ...
    puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    python3
    >>> import serial
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Cela voudrait dire tu n'as pas ce fichier ?

    /anaconda/lib/python3.4/site-packages/serial/serialposix.py
    Après avoir fait dans le terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls /anaconda/lib/python3.4/site-packages/serial/serialposix.py
    l'ordinateur ne trouve aucun fichier...
    Une manipulation doit être possible pour créer ce fichier?

    J'ai rentré ce code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 -m pip install pyserial
    j'ai eu cette réponse:
    Requirement already satisfied (use --upgrade to upgrade): pyserial in /anaconda/lib/python3.4/site-packages

    donc jusqu'ici tout semble correct mais après, je mets dans le terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    python3
    import serial
    et le même message d'erreur réapparait...
    (ie: No module named 'serial.serialposix')

    Il semble que vous ayez plusieurs environnements Python installés.
    Peut-être qu'il faudrait dé-installer ces environnements et n'en garder qu'un?

    Max

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

    Pour l'instant, on va essayer de faire marcher cet import.
    Essayer de désinstaller pyserial, via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 -m pip uninstall pyserial
    Puis vous le ré-installez via "python3 -m pip install pyserial" et vous retestez l'import.

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

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    J'ai réussi à correctement dé-installer pyserial en procédant comme vous me l'avez indiqué.
    Après avoir ré-installé la bibliothèque pyserial avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 -m pip install pyserial
    j'ai eu un message assez long avec entre autre:

    Collecting pyserial
    Using cached pyserial-2.7.tar.gz
    Building wheels for collected packages: pyserial
    Running setup.py bdist_wheel for pyserial
    Successfully built pyserial
    Installing collected packages: pyserial

    Exception:
    Traceback (most recent call last):
    File "//anaconda/lib/python3.4/site-packages/pip/basecommand.py", line 211, in main
    status = self.run(options, args)
    File "//anaconda/lib/python3.4/site-packages/pip/commands/install.py", line 311, in run
    root=options.root_path,
    File "//anaconda/lib/python3.4/site-packages/pip/req/req_set.py", line 646, in install
    **kwargs
    File "//anaconda/lib/python3.4/site-packages/pip/req/req_install.py", line 803, in install
    self.move_wheel_files(self.source_dir, root=root)
    File "//anaconda/lib/python3.4/site-packages/pip/req/req_install.py", line 998, in move_wheel_files
    isolated=self.isolated,
    File "//anaconda/lib/python3.4/site-packages/pip/wheel.py", line 339, in move_wheel_files
    clobber(source, lib_dir, True)
    File "//anaconda/lib/python3.4/site-packages/pip/wheel.py", line 317, in clobber
    shutil.copyfile(srcfile, destfile)
    File "//anaconda/lib/python3.4/shutil.py", line 109, in copyfile
    with open(dst, 'wb') as fdst:
    PermissionError: [Errno 13] Permission denied: '//anaconda/lib/python3.4/site-packages/serial/__init__.py'

    Après l'import de serial en suivant votre protocole, j'ai encore le même message d'erreur...

    Max

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par maxpsi Voir le message
    J'ai réussi à correctement dé-installer pyserial en procédant comme vous me l'avez indiqué.
    Après avoir ré-installé la bibliothèque pyserial avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 -m pip install pyserial
    çà dit juste qu'il faut avoir des privilèges pour installer et préfixer toute ces commandes par "sudo" i.e. taper "sudo python3 -m pip install pyserial"

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

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    j'ai fait fait la manipulation avec sudo et testé l'import et le message d'erreur est malheureusement toujours affiché.

    Max

  17. #17
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Et que retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ls //anaconda/lib/python3.4/site-packages/serial/
    il faudra sans doute remplacer le double slash du début par le vrai chemin.

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

    Il semble qu'il y ait au moins un pb. avec le kit que vous récupérez.
    Dans un premier temps, vous allez mettre à à jour pip:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo python3 -m pip install --upgrade pip
    then:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo python3 -m pip install pyserial --no-cache-dir --ignore-installed
    postez la sortie de la dernière commande.

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

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls //anaconda/lib/python3.4/site-packages/serial/
    retourne:
    __init__.py serialcli.py serialwin32.py urlhandler
    __pycache__ serialjava.py sermsdos.py win32.py
    rfc2217.py serialutil.py tools

    Ce qui m'interpelle, ce sont les termes en "win32.py" alors que je suis sur mac OSX.

  20. #20
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    C'est normal, tous les modules sont présent dans le même package et le module correspondant à ton os est choisit dans le __init__.py

    Par contre tu aurais dût avoir ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    vincent@djoliba:/usr/local/lib/python3.4/dist-packages$ ls serial/
    __init__.py  rfc2217.py    serialjava.py   serialutil.py   sermsdos.py  urlhandler
    __pycache__  serialcli.py  serialposix.py  serialwin32.py  tools        win32.py
    Et je l'ai installé hier avec pip comme toi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème d'installation de bibliothèque taglib et id3lib
    Par Nimajneb dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 11/12/2009, 20h45
  2. Réponses: 8
    Dernier message: 17/01/2008, 10h42
  3. [GD] Problème d'installation de la bibliothèque GD2
    Par taupinfada dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 19/10/2006, 20h38
  4. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  5. Réponses: 3
    Dernier message: 26/07/2002, 23h02

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