我在超级用户上问了这个问题,并得到了风滚草徽章(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\.py
是Python.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/