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 :

chemin pour python [Python 3.X]


Sujet :

Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut chemin pour python
    Bonjour,
    Sur une machine linux je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     type python
    python is /usr/bin/python
    Après je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    export PATH=/home/myuser/python/Python-3.5.2:$PATH
    J'attend que pour type python il me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    python is /home/myuser/python/Python-3.5.2
    Mais non, j'ai toujours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    type python
    python is /usr/bin/python
    Et cela parce que (je pense) il n'y a pas de fichier exécutable python dans /home/myuser/python/Python-3.5.2.

    1-Pensez vous qu'il y a une autre raison?
    2-Si la cause est bien ça (manque d'exécutable) où peut-on le récupérer et mettre dans /home/myuser/python/Python-3.5.2 sans être obligé de ré installer Python-3.5.2?

    D'avance merci.

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

    Citation Envoyé par big1 Voir le message
    1-Pensez vous qu'il y a une autre raison?
    à la base, votre question porte sur le PATH et ce que retourne "type" et ce sont des questions à poser dans un forum Linux.

    Citation Envoyé par big1 Voir le message
    2-Si la cause est bien ça (manque d'exécutable) où peut-on le récupérer et mettre dans /home/myuser/python/Python-3.5.2 sans être obligé de ré installer Python-3.5.2?
    Récupérer l'exécutable (pythonXXX.exe) sans les bibliothèques qui vont avec ne fonctionnera pas (et vous pourriez essayer pour voir, la machine ne vous mordra pas). Et si la question est "j'aimerai avoir un environnement Python dans lequel je pourrais installer "mes" bibliothèques sans polluer l'installation système, la fonctionnalité venv le fait très bien.

    - W

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut
    Merci wiztricks.

    Il y a python installé qui marchait bien. Avec ses bibliothèques.

    Mes scripts ne marchent pas à cause de problème de PATH.

    J'ai copié un exécutable version 2.6 dans le répertoire et cela a réglé le problème de PATH:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    export PATH=/home/myuser/python/Python-3.5.2:$PATH
    type python
    python is /home/myuser/python/Python-3.5.2
    Il me suffit de trouver (où?) un exécutable version 3.5.2.

    D'avance merci.

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

    Citation Envoyé par big1 Voir le message
    Mes scripts ne marchent pas à cause de problème de PATH.

    J'ai copié un exécutable version 2.6 dans le répertoire et cela a réglé le problème de PATH:
    Il n'y a aucune raison pour que vos script aient besoin de cela.
    On peut vous aider à comprendre le problème (pour autant que vous preniez le temps de le documenter) pas à construire une solution dont on ne comprend pas le pourquoi du comment.

    Désolé.

    - W

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut
    Merci encore.

    Voici mon script:
    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
    26
    27
    28
     
    import threading
    import subprocess
     
    def worker(host, dbtype, db, dbuser):
        """thread worker function"""
        print(r"/home/myuser/python/scripts/refresh_vm/refresh_vm.sh {} {} {} {}".format(host, dbtype, db, dbuser))
        cmd = r"/home/myuser/python/scripts/refresh_vm/refresh_vm.sh {} {} {} {}".format(host, dbtype, db, dbuser)
        subprocess.run(cmd, shell=True)
     
    def dbname():
        with open("db_info.txt") as db_info:
            return db_info.read().strip().split('\n')
     
    threads = []
     
    for dbname in dbname():
            l = str(dbname).split(';')
            #print(l)
            host = l[0]
            db = l[1][4:] if "PDB_" in  l[1] else l[1]
            dbtype = '-p' if "PDB_" in  l[1] else '-s'
            dbuser = l[2]
            print(l, '   ==>  {} | {} | {} | {}'.format(host, dbtype, db, dbuser))
            t = threading.Thread(target=worker, args=(host, dbtype, db, dbuser,))
            threads.append(t)
            t.start()
            print('-'*50)
    Voici les erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    File "refresh_vm.py", line 23, in <module>
        print(l, '   ==>  {} | {} | {} | {}'.format(host, dbtype, db, dbuser))
    ValueError: zero length field name in format

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

    C'est un problème Python 2.6 que vous devriez pouvoir reproduire avec juste: '{}'.format('toto')Et la réponse est dans le message d'erreur: "ValueError: zero length field name in format" qui signifie qu'écrire '{0}'.format('toto') devrait fonctionner.
    Avoir un champ vide est une fonctionnalité qui a été ajouté dans les dernières versions de python2 et présente dans toutes les versions de Python >3.1.

    - W

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut
    Bonjour,
    Merci pour votre réponse.
    J'ai corrigé le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    print(r"/home/myuser/python/scripts/refresh_vm/refresh_vm.sh {0} {0} {0} {0}".format(host, dbtype, db, dbuser))
        cmd = r"/home/myuser/python/scripts/refresh_vm/refresh_vm.sh {0} {0} {0} {0}".format(host, dbtype, db, dbuser)
    Maintenant la partie lecture de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def dbname():
        with open("db_info.txt") as db_info:
            return db_info.read().strip().split('\n')
     
    threads = []
    qui marche mal.
    En effet db_info. text contient:
    host;db;user
    Mais python prend seulement la valeur de host pour toutes les autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (['host', 'db', 'user'], '   ==>  host | host | host | host')
    Merci pour votre aide.

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

    Certes mais il représente quoi ce "0"?
    Que se passe-t-il si vous le remplacez par "1", par "2"?
    Si vous vous contentez de recopier des lignes sans avoir la curiosité de comprendre ce qu'elles font, d'aller lire la documentation pour savoir un peu ce qu'il se passe...

    - W

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut
    Merci.
    En remplaçant par 1,2,3 le script marche.
    Cordialement.

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

Discussions similaires

  1. definir chemin pour table liée
    Par branqueira dans le forum Access
    Réponses: 4
    Dernier message: 22/10/2005, 13h44
  2. [JAR]chemin pour acceder au ressources & JAR
    Par DenisLorrain dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/04/2005, 22h45
  3. [C#] Chemin pour mon fichier CSS
    Par the_new dans le forum ASP.NET
    Réponses: 5
    Dernier message: 23/03/2005, 15h25
  4. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51

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