+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre chevronné
    Homme Profil pro
    heu...
    Inscrit en
    octobre 2007
    Messages
    642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : octobre 2007
    Messages : 642
    Points : 742
    Points
    742

    Par défaut [windows] executer automatiquement (et/ou manuellement) la bonne version de python

    Ayant du rinstaller mon système suite à un virus assez invasif et emmerdant, j'ai donc refait au propre mes différentes install de python, ainsi que les différentes manips dans windows... Et j'ai pensé que mettre tout cela au clair pourrais être apprécié par d'autres personnes...

    Tout d'abord, je tiens à signaler cette discussion, discution dans la quelle il vaut mieux (dans le cas où vous optez pour ma soluce), suivre les démarches décrites ici que là-bas. Toutefois c'est surtout les soluces de PauseKawa que je voudrait signaler, soluces plus... universelle, non cantonée à un os particulier.

    Bon, maintenant faisons le tour des résultats obtenus à l'issue de ce guide :
    • une entré dans le menu contextuel (click droit) sur un fichier py permettant de choisir la version de python à executer (une entrée par version)
    • une entrée (toujours dans le menu contextuel) permettant de choisir quasi-automatiquement la bonne version (il faudra simplement indiquer la version dans les script via un petit commentaire parmis les 3 premières lignes, une version sera choisie par défaut dans le cas de l'abscence de la dite ligne)
    • des commandes pour chaque versions executables depuis la console windows, ainsi que la commande de choix automatique
    • BONUS : des entrées dans le menu contextuel pour ouvrir une console windows dans le repertoire selectionné, ou déjà ouvert.


    Tout d'abord, faites bien la différence entre la console windows et la console python. Je pars du principe que vous la faites.

    Pour faire tout cela, commencez par installer toutes vos version de python. Une fois cela fait, dans le but d'économiser du temps dans le cas d'une éventuelle réinstalation du système, créez un dossier PyShortcuts dans un disque autre que C, si possible. Si vous n'avez que C: comme disque, créez ce dossier dans C:, cela marche tout autant, mais tout ce que nous créeront dedans devra être refait si vous réinstallez votre system.

    Ensuite, il vous faut vérifiez que les extension des fichiers sont bien affichés, pour cela, ouvrez un dossier, cliques sur Outils>Option des dosssiers>Onglet affichage et s'assurer dans la partie "parametres avancés" que l'option "Masquer les extension dont le type est connu" est décochée.

    Maintenant, dans ce dossier, nous allons créer des "commandes", et ces commandes devront être trouvée par windows depuis n'importe quel dossier, pour cela, nous allons lui indiquer qu'il devra les chercher ici :
    1. ouvrez le panneau de configuration
    2. ouvrez "System"
    3. onglet "Avancé"
    4. bouton "Variables d'environnement"
    5. Dans la partie variable d'environnement, trouver "Path", cliquez dessus et cliquez ensuite sus modifier
    6. Dans le champs "Valeur de variable", allez à la fin, ajoutez un ";" (sans les guillemets) puis tapez le chemin complet du dossier que nous venons de créer
    7. Enfin, validez tout


    Chaque installations de python contiennt un fichier python.exe, nous allons maintenant créer des commandes simples permettant d'éxécuter pour chacunes le python.exe d'une version :
    1. Dans le dosier créer, faites : fichier>nouveau>document texte
    2. nommez ce fichier p26.bat (pour la version 2.6, ou p27.bat pour la version 2.7, etc...)
    3. maintenant, faites un clic droit dessus et cliquez sur modifier
    4. une fenêtre notepad s'est ouverte, il vous faut écrire :
      Code :
      1
      2
      @LeCheminDeLaVersionDePythonConcernée\python.exe %*
      @pause
      Remplacez la partie en rouge par le chemin de la bonne version de python (ex: C:\Python26 , ce qui donnera au complet @C:\Python26\python.exe %*)
    5. Enregistrez et quittez
    6. Répetez les étapes précedentes pour chaques versions de python


    Maintenant, nous allons nous attaquer à la commande automatisée. Le principe, va être d'appeler un script python, qui analysera les première lignes du script python que vous voudrez lancer (script cible) pour choisir quelle version de python utiliser :
    1. commençons par créer le script python, que nous allons créer dans le dossier PyShortcuts et que nous appellerons _python.py
    2. son contenu sera le suivant, il utilise ma méthode, il il vous sera assez facile de le modifier pour mettre en place votre propre convention si la mienne ne plait pas, il vous faudra en revanche obligatoirement modifier la version par défaut par une de celle installée chez vous, chez moi c'est la 26, cette ligne se situe vers le bas du fichier :
      Code :
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      import sys, os
       
      filepath, filename = os.path.split(sys.argv[1])
      args = sys.argv[1:]
      os.chdir(filepath)
       
      with open(filename) as f_in:
          nl=0
          for line in f_in:
              if '#v'==line[0:2]:
                  v=line.strip()[2:]
                  print 'version %s found'%v
                  os.system('p%s %s'%(v, ' '.join(args)))
                  sys.exit()
              elif nl>2:
                  break
              nl+=1
       
      print 'version not found, 26 used by default'
      os.system('p26 %s'%(' '.join(args)))
      sys.exit()
    3. maintenant créer le fichier "python.bat"
    4. modifiez-en le contenu de façon à obtenir :
      Code :
      1
      2
      @p26 CheminDePyShortcuts\_python.py %*
      @pause
      Remplacez la partie en rouge par le chemin complet du dossier PyShortcuts. Vous pouvez (et devez même) remplcer également p26 par la commnde désignat une de vos versions installée (de préférence une 2.x, à cause des commandes print... sinon modifiez le script _python.py en fonction)
    5. Enregistrez et quittez


    Nous allons maintenant créer les entrées dans les menus contextuels :
    1. ouvrez un dossier, peu importe lequel
    2. cliquez sur le menu Outils
    3. Option des dossiers
    4. Onglet "Types de fichiers"
    5. Cherchez PY, et selectionnez-le
    6. cliquez maintenant sur le bouton "Avancé"
    7. selectionnez "open", et cliquez sur "Modifier"
    8. cliquez sur "Parcourir" et allez cherchez le fichier python.bat
    9. dans le champ "Application utilisée [...]", allez à la fin, et ajouter (sans les guillemets, et remarquez la présence de l'espace...) " %*"
    10. répetez les manipulation ci-dessus depuis l'étape 5, mais au lieu de selectioner "open" puis "Modifier...", faites "Nouveau...", et mettez le nom de la version de python dans le champ "Action" de la fenêtre qui apparaîtra. Et selectionnez évidemment le .bat de la version ciblée
    11. Maintenant selectionnez l'action qui devra être effectuée par défaut, puis cliquez sur "Par défaut"


    Et Voilà ! Il ne vous reste plus qu'a ajouter dans vos script, dans une des 3 premières ligne, une ligne où XX est le numéro de la version sans les point (26 et pas 2.6 ...)

    BONUS :
    Voici le bonus vous permettant d'avoir un entrée dans le menu contextuel qui ouvre une console dans le dossier selectionné, ou le dossier ouvert (le nom des commandes diffèrent selon si l'on fait un clique droit sur un dossier (auquel cas la console s'ouvrira dans ce dossier) ou si l'on clique sur un fichier (auquel cas la console s'ouvrira dans le dossier du fichier selectionné)
    1. créez un fichier .reg, peut importe le nom, du moment qu'il est de l'extension reg.
    2. cliquez-droit dessus, puis selectionnez modifier
    3. inserez ce contenu :
      Code :
      1
      2
      3
      4
      5
      6
      7
      Windows Registry Editor Version 5.00
       
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Terminal Here\command]
      @="cmd.exe /k cd %cd%"
       
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Terminal In That Folder\command]
      @="cmd.exe /k cd %1"
    4. enregistrez, quittez, puis double-cliquez dessus, et voilà
    "Plus je passe de temps à apprendre à parler à un ordi,
    plus je deviens aussi con que lui"
    -Moi-
    "La console python est votre amie, les print aussi" -Confucius-

  2. #2
    Invité régulier
    Inscrit en
    novembre 2011
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : novembre 2011
    Messages : 39
    Points : 9
    Points
    9

    Par défaut

    Bonjour j'espère que je poste aux bonne endroit, ce topic n'a l'air bon en tout cas, je poste pour dire que moi j'ai carrément fait ça
    Ce connecter pour voir l'image

    j'ai python d'installer sur un dossier de disque monter de disque dur virtuel VHD monter dans "C:\Python" les 2 fichiers *.reg ce trouve dans le zip, le fichier python ext.reg est pour créer le sous menu principal pour les ext .py et .pyw non compiler, et le fichier python.reg et pour créer les différent ouvreurs dans le sous menu bien sur il faut adapté personnaliser selon ces chemin d'accès et ces version de python, open version architecture c'est pour le Windows Prompt CMD, ainsi dans ce sous menu j'ai carrément 12 ouvreurs différent.

    MediaVistaIntel
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  3. #3
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    5 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 5 665
    Points : 8 565
    Points
    8 565

    Par défaut

    Installez plutôt Python 3.3, il vient avec un launcher Windows qui répond à ce problème. Il est utilisable avec les anciennes versions de Python.
    - W
    Architectures Post-Modernes

  4. #4
    Invité régulier
    Inscrit en
    novembre 2011
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : novembre 2011
    Messages : 39
    Points : 9
    Points
    9

    Par défaut

    Merci wiztricks j'ai installer Python 3.3 x86 et x64 en complément de tout le reste déjà installer, et j'ai la question suivant. Tu le trouve comment mon sous menu de python pour les fichiers .py et .pyw?

  5. #5
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    5 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 5 665
    Points : 8 565
    Points
    8 565

    Par défaut

    Citation Envoyé par MediaVistaIntel Voir le message
    Tu le trouve comment mon sous menu de python pour les fichiers .py et .pyw?
    Si tu parles de ce qui est présenté dans le "post" précédent, je dirais "bravo", bon boulot. Tu as du apprendre des tas de choses côté "customization Windows".
    - W
    Architectures Post-Modernes

  6. #6
    Community Manager

    Avatar de Lana.Bauer
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    novembre 2012
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : novembre 2012
    Messages : 4 562
    Points : 9 163
    Points
    9 163

    Par défaut

    Moi je trouve que si le contenu de cette discussion pourra être transmis sur un article et sera très pertinent.
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •