python版本在winXP

我问超级用户这个问题,并得到了它的风滚草徽章(10天13个意见),所以我想这里可能是正确的地方。

有几个版本的Python安装在我的Windows机器。 我希望能够在默认使用的版本之间轻松切换。

我尝试并使用winexplorer来更改与py文件关联的程序。 我将程序设置为用来打开这些文件作为写字板。 现在,当我在命令行input.py的文件名时,文件将在写字板中打开。

尽pipe如此,在命令行中键入以下内容将产生:

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

我不明白为什么命令行运行wordpad(如在Windows资源pipe理器中设置),虽然assoc和ftype说它应该运行Python27。

这些关联(命令行与资源pipe理器)存储在不同的地方? 哪一个覆盖哪一个,并设置与assoc和ftype的新关联覆盖在资源pipe理器中设置?

你会推荐做什么,以便能够轻松切换?


更多信息从我的registry中:

HKEY_CLASSES_ROOT.py是Python.File

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

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.py \ OpenWithProgids \ Python.File是长度为0的二进制值。

HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.py(标准)是Python.File

更多registry:

HKEY_CLASSES_ROOT \ Applications \ python.exe \ shell \ open \ command(Standard)仍然是“C:\ Program \ Python27 \ python.exe”“%1”%*

我想这是什么显示在ftype Python.File。 但它似乎并没有得到使用。


编辑以添加注册信息

Regedit说:

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

我试图改变Content Type的值,没有效果。

也:

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

我试图设置shell的值open ,并open到python27 exe的path的值,仍然无法正常工作。 不知怎的,命令提示符仍然可以find我在winexplorer中创build的关联,并使用wordpad打开文件,而不是在open中使用该命令。

如果HKEY_CLASSES_ROOT\.pyPython.File则必须查看HKEY_CLASSES_ROOT\Python.File\shell 。 然后查找名称与其值相同的子项,例如,如果shell项的值open请转到HKEY_CLASSES_ROOT\Python.File\shell\open 。 这就是关联存储的地方。 如果shell键没有值,请转到open子项。

问题是,无论shell键的值如何, ftype工具总是显示open子键的内容。