Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, faq, sources pour Python & Zope
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/08/2010, 13h34   #1
N.tox
Membre chevronné
 
Homme
heu...
Inscription : octobre 2007
Messages : 636
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : heu...

Informations forums :
Inscription : octobre 2007
Messages : 636
Points : 740
Points : 740
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-
N.tox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2013, 15h46   #2
MediaVistaIntel
Invité régulier
 
Inscription : novembre 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 33
Points : 9
Points : 9
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
Type de fichier : png Python.png (229,4 Ko, 20 affichages)
Fichiers attachés
Type de fichier : zip python reg.zip (1,0 Ko, 1 affichages)
MediaVistaIntel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2013, 15h50   #3
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 693
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 693
Points : 4 521
Points : 4 521
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
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2013, 17h05   #4
MediaVistaIntel
Invité régulier
 
Inscription : novembre 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 33
Points : 9
Points : 9
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?
MediaVistaIntel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2013, 17h42   #5
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 693
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 693
Points : 4 521
Points : 4 521
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
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h52.


 
 
 
 
Partenaires

Hébergement Web