2010-11-08 5 views
1

J'ai posé cette question sur le superutilisateur, et j'ai obtenu le badge tumbleweed pour celui-ci (13 vues dans 10 jours), donc j'ai pensé que c'était peut-être le bon endroit.versions python sur winXP

Plusieurs versions de python sont installées sur mon ordinateur Windows. Je veux pouvoir basculer facilement entre les versions utilisées par défaut.

J'ai expérimenté et utilisé winexplorer pour changer le programme associé aux fichiers py. Je définis le programme à utiliser pour ouvrir ces fichiers en tant que wordpad. Maintenant, lorsque je tape un nom de fichier .py dans la ligne de commande, le fichier s'ouvre dans le bloc-notes.

Malgré cela, en tapant ce qui suit dans les rendements en ligne de commande:

C:\>assoc .py 
.py=Python.File 

C:\>ftype Python.File 
Python.File="C:\Program\Python27\python.exe" "%1" %* 

Je ne comprends pas pourquoi la ligne de commande exécute WordPad (tel que défini dans l'explorateur Windows), bien que disent assoc et ftype il devrait exécuter Python27.

Ces associations (ligne de commande vs explorateur) sont-elles stockées dans des endroits différents? Lequel substitue lequel, et établit une nouvelle association avec assoc et ftype remplace ce jeu dans l'explorateur?

Que recommanderiez-vous de faire, afin de pouvoir changer facilement?


Plus d'info de mon registre:

HKEY_CLASSES_ROOT.py est Python.File

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.py \ Application est wordpad.exe

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.py \ OpenWithProgids \ Python.File est une valeur binaire de longueur 0.

HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.py (Standard) est Python.File

Plus Registre:

HKEY_CLASSES_ROOT \ Applications \ python.exe \ shell \ open \ command (Standard) est toujours « C: \ Program Files \ Python27 \ python.exe ""% 1 "% *,

Je suppose que c'est ce qui apparaît dans ftype Python.File. Mais ça ne semble pas s'habituer.


Modifier pour ajouter registre informations

Regedit dit:

HKEY_CLASSES_ROOT\.py 
    +--- (Standard) REG_SZ Python.File 
    +--- Content Type REG_SZ text/plain 

J'ai essayé de changer la valeur de Content Type, aucun effet.

aussi:

HKEY_CLASSES_ROOT\Python.File 
    +--- shell (no data) 
      +--- Edit with IDLE 
      |  +--- command 
      |    +--- (Standard) <path-to-idle> 
      +--- open (no data) 
       +--- command 
         +--- (Standard) <path-to-python27> 

J'ai essayé de définir la valeur de shell-open, et la valeur de open sur le chemin du python27 exe, ne fonctionne toujours pas. L'invite de commande trouve toujours l'association que j'ai faite dans winexplorer et utilise le mot-clé pour ouvrir le fichier, au lieu d'utiliser la commande dans open.

Répondre

1

Si HKEY_CLASSES_ROOT\.py est Python.File alors vous devez regarder HKEY_CLASSES_ROOT\Python.File\shell. Recherchez ensuite la sous-clé nommée comme sa valeur, par ex. Si la clé shell a la valeur open, passez à HKEY_CLASSES_ROOT\Python.File\shell\open. C'est là que l'association est stockée. Si la clé shell n'a aucune valeur, passez à la sous-clé open.

Le problème est que l'outil ftype montre toujours le contenu de la sous-clé open quelle que soit la valeur de la clé shell.

+0

Intéressant. Mais qu'est-ce qui fait que 'cmd' utilise wordpad, au lieu de la valeur dans' HKEY_CLASSES_ROOT \ Python.File \ shell \ open \ command'? 'shell' n'a pas de valeur, seulement deux sous-clés' Edit avec IDLE' et 'open', avec chacune une sous-clé' command'. Les deux sous-clés 'command' ont une valeur liée à python, none à wordpad. – Gauthier

+0

donc 'cmd' utilise la valeur de' shell' pour exécuter le script, alors que 'ftype' utilise la valeur de' open'? Ma clé 'shell' n'a pas de valeur, qu'est-ce que cmd utilise alors pour lancer le script (il se trouve que c'est le wordpad, mais quelle est la clé utilisée?). – Gauthier

Questions connexes