我在超级用户上问了这个问题,并得到了风滚草徽章(10天之内有13次观看),因此我认为这里可能是正确的地方。

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

我进行了实验,并使用winexplorer更改了与py文件关联的程序。
我设置了用于以写字板打开这些文件的程序。
现在,当我在命令行中输入.py的文件名时,该文件将在写字板中打开。

尽管如此,在命令行中输入以下命令仍会产生:

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

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


我不明白为什么命令行运行写字板(在Windows资源管理器中设置),尽管assoc和ftype表示它应该运行Python27。

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

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



来自我的注册表的更多信息:

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(Standard)是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中建立的关联,并使用写字板打开文件,而不是在open中使用命令。

最佳答案

如果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项的值如何。

关于python - WinXP上的python版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4123009/

10-14 16:19
查看更多