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

Contribuez Python Discussion :

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


Sujet :

Contribuez Python

  1. #1
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
      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 : 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
      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 : Sélectionner tout - Visualiser dans une fenêtre à part
      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 : Sélectionner tout - Visualiser dans une fenêtre à part
      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à

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Points : 30
    Points
    30
    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
    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
    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.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Points : 30
    Points
    30
    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
    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 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.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert éminent sénior
    Avatar de Lana.Bauer
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    5 382
    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 : 5 382
    Points : 12 109
    Points
    12 109
    Par défaut
    Moi je trouve que si le contenu de cette discussion pourra être transmis sur un article et sera très pertinent.

Discussions similaires

  1. Execution automatique de Windows Media Player
    Par goofyto8 dans le forum Windows 7
    Réponses: 17
    Dernier message: 22/07/2013, 14h56
  2. Associer à un script la bonne version de python
    Par jouclar dans le forum Général Python
    Réponses: 20
    Dernier message: 24/04/2012, 23h37
  3. Réponses: 7
    Dernier message: 23/09/2007, 17h37
  4. [VB6] execution automatique d'une tache
    Par Jacen dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 18/05/2006, 08h52
  5. Execution automatique de code
    Par Ant8386 dans le forum Oracle
    Réponses: 6
    Dernier message: 10/05/2006, 17h08

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