winXP上的python版本

时间:2010-11-08 10:26:16

标签: python windows associations

我在超级用户上问过这个问题,并获得了风滚草徽章(10天内有13次观看),所以我觉得这里可能是正确的地方。

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

我试验并使用winexplorer来改变与py文件相关的程序。 我将用于打开这些文件的程序设置为wordpad。 现在,当我在命令行中输入.py的文件名时,文件将在wordpad中打开。

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

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

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

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

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

为了能够轻松切换,您建议做什么?


我的注册表中的更多信息:

HKEY_CLASSES_ROOT.py是Python.File

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

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

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

更多注册表:

HKEY_CLASSES_ROOT \ Applications \ python.exe \ shell \ open \ command(标准版)仍为“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的路径,但仍无法正常工作。 不知何故,命令提示符仍然找到我在winexplorer中创建的关联,并使用wordpad打开文件,而不是使用open中的命令。

1 个答案:

答案 0 :(得分:1)

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

问题是 ftype 工具始终显示open子项的内容,而不管shell项的值是什么。