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 :

Associer à un script la bonne version de python


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Associer à un script la bonne version de python
    Bonjour,

    J'ai installer les version 2.7 et 3.2 de python sur mon PC. Lorsque j'utilise un IDE, je peux choisir la version de python qui correspond à mon script.

    Comment faire pour indiquer dans le script quelle est la bonne version de python à utiliser afin qu'elle soit choisie lors du double clic?

    Merci

  2. #2
    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
    Normalement c'est le shebang qui désigne la version.

    Mais ce n'est pas toujours aussi simple.

    Expérience Linux.
    Debian et dérivée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #! /usr/bin/python
    #! /usr/bin/python2
    lancent tous les deux la version 2.x, qui est la version défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #! /usr/bin/python3
    lance la version 3.x

    Archlinux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #! /usr/bin/python
    lance la version 3.x, qui est la version défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #! /usr/bin/python2
    lance la version 2

    Exception:
    Ubuntu depuis Unity:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #! /usr/bin/python    >> lance la version 2.x, toujours défaut
    #! /usr/bin/python3  >> lance la version 3.x
    #! /usr/bin/python2  >> retourne une erreur
    Cette variante s'utilise aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #!/usr/bin/env python

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    Merci pour cette répons VinS, mais j'ai oublié de préciser que je suis sur Windows

  4. #4
    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, si je ne m'abuse, sous Windows tu dois indiquer le chemin complet, donc avec le numéro de version, non?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par jouclar Voir le message
    Merci pour cette répons VinS, mais j'ai oublié de préciser que je suis sur Windows
    salut,

    essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #!c:/Python/python.exe -u
    vérifie au préalable que ton .exe (dans le dossier des versions que t'as installé ) est dans le même chemin que sur l’exemple.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    non pas mieux doudoubens

    voici le script :
    #!c:/Python27/python.exe -u

    prenom = raw_input("Entrez votre prénom : ")
    print "Bonjour,", prenom
    quand je double clic il lance Puthon32 et donc plante

    j'ai :
    c:\Python27\
    c:\Python32\

    Merci

  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,

    Je me permet de signaler une contribution de N.tox sur le sujet.

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

  8. #8
    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,
    Quand on clicke sur un fichier, windows va chercher l'exécutable associé à l'extension du nom du fichier (Open With). S'il y en a plusieurs, l'utilisateur pourra choisir ou ajouter un programme.

    Pour supporter l'appel de la "bonne" version de Python, il faudra l'encoder en dur dans le "shebang" et associer le .py a un exécutable qui:
    - lise le shebang,
    - lance le script avec l'exécutable "Python" correspondant,

    J'ai le souvenir que ce sujet a été abordé il y a quelques temps déjà. Une solution satisfaisante (du code) avait été proposée, mais malheureusement, je n'arrive pas à remettre la main dessus.

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

  9. #9
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Sous windows, tu dois le faire dans le registre.
    ouvre le, et fait une recherche "PythonXX/" (xx etant la version par defaut).
    pour plus de details... http://www.developpez.net/forums/d85...t/#post4867119
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  10. #10
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    @Pausekawa: trop rapide je l'ai cherche cette contrib, mais j'ai pas pu mettre la main dessus.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  11. #11
    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
    Citation Envoyé par afranck64 Voir le message
    @Pausekawa: trop rapide je l'ai cherche cette contrib, mais j'ai pas pu mettre la main dessus.
    Normal : J'ai suivit le sujet à la base de celle ci.
    Merci d'utiliser le forum pour les questions techniques.

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    Bonjour et merci pour ces réponses.

    Je viens de tester la méthode de N.tox ce lien mais cela ne fonctionne pas.

    Quand je lance le script _python.py avec la version installée sur mon PC (27) j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "D:\xxxx\zzzz\PyShortcuts\_python.py", line 14, in <module>
        filepath, filename = os.path.split(sys.argv[1])
    IndexError: list index out of range
    Merci de votre aide

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par jouclar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.path.split(sys.argv[1])
    D'après cette commande, le script attend au moins un argument lors de son appel.
    En effet sys.argv stocke les arguments passés à un script python : sys.argv[0] stocke le nom du script, sys.argv[1] le 1er argument ...

  14. #14
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par jouclar Voir le message
    Bonjour et merci pour ces réponses.

    Je viens de tester la méthode de N.tox ce lien mais cela ne fonctionne pas.

    Quand je lance le script _python.py avec la version installée sur mon PC (27) j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "D:\xxxx\zzzz\PyShortcuts\_python.py", line 14, in <module>
        filepath, filename = os.path.split(sys.argv[1])
    IndexError: list index out of range
    Merci de votre aide
    C'est un peu fort de conclure que la methode ne fonctionne pas suite a un "IndexError". Comme l'a si bien dit ZZelle, c'est juste le script qui pose probleme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filepath, filename = os.path.split(sys.argv[0])
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  15. #15
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    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 824
    Points : 7 120
    Points
    7 120
    Par défaut
    +1 pour afranck64 et ZZelle

    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)

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    oui vous avez raison, je me suis mal exprimé dans mas réponse, je ne remettais pas en cause le script, c'est juste que je n'arrive pas à le faire fonctionner sur ma machine

    je vais reprendre l'ensemble de la procédure

  17. #17
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Hmm, as tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import sys
    print (sys.version)
    pour verifier qu'il ne selectionnait pas deja la bonne version?
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    en fait il associe mon script à python32 alors que je ne l'ai pas dans la variablement d'environnement du path

  19. #19
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par jouclar Voir le message
    en fait il associe mon script à python32 alors que je ne l'ai pas dans la variablement d'environnement du path
    La methode 1:
    1-ouvrir l'invite de commande
    2-taper "regedit"
    3-rechercher "Python32" ... ca devrait etre une section "command", remplacer le chemin par celui de Python27(ou XY)

    ou alors comme mentionne dans la doc :
    1- ouvrir l'invite de commande
    2- executer <<assoc .py=Python.File>>
    3- executer <<ftype Python.File=C:\Python27\python.exe "%1" %*>>

    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  20. #20
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    j'ai modifier avec regedit comme proposé par afranck64 : pas mieux

    j'ai donc recommencé toute la procédure : lorsque je prend le script écrit python27 et que je le dépose sur python.bat ça la bonne version de python est lancée (p27) mais lorsque je couble clic sur ce même script c'est la version32 qui est lancé donc je plante...

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/09/2013, 19h07
  2. Quelle version de Python au démarrage d'un script?
    Par Chris33 dans le forum Général Python
    Réponses: 37
    Dernier message: 04/01/2010, 11h48
  3. [FLASH 8] Choisir la bonne version du player
    Par dom_dev dans le forum Flash
    Réponses: 2
    Dernier message: 11/04/2006, 10h09
  4. [IDE][VS2005]Comment indiquer bonne version à publier?
    Par giloutho dans le forum Visual Studio
    Réponses: 10
    Dernier message: 06/04/2006, 11h07
  5. [C#] Pb de DLL : ne trouve pas la bonne version
    Par sokette dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/04/2005, 14h59

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