I have files with .py
extension associated with Python interpreter. However when I type name of such a file at the command line and press ENTER
the file is being opened in the default text editor (Notepad++) instead of being run with the associated Python interpreter. Why?
Z:1>where python
c:Program FilesPython2.7python.exe
Z:1>reg query HKCR.py /ve
HKEY_CLASSES_ROOT.py
(Default) REG_SZ Python.File
Z:1>reg query HKCRPython.Fileshellopencommand /ve
HKEY_CLASSES_ROOTPython.Fileshellopencommand
(Default) REG_SZ c:Program FilesPython2.7python.exe "%1" %*
Z:1>echo %PATHEXT%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
Z:1>type a.py
from __future__ import print_function; import sys; print(sys.executable); print(sys.version)
Z:1>a.py <--- this opens a.py in the default text editor
I'm on Windows Vista x64 using Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
UPDATE
After deleting HKEY_CLASSES_ROOTUnknownshell
otepad++command
key (I created this key in the past in my quest to associate files without extension with Notepad++ - see How to set the default program for opening files without an extension in Windows?) which had value of C:Program Files (x86)Notepad++
otepad++ %1
I get this error:
This file does not have a program associated with it for performing
this action. Create an association in the Set Associations control
panel.
UPDATE 2
To display all registry keys used normally by system to find out what program is associated with .py
extension I run the following batch file (python_assoc.query.bat
):
@echo off
if "%~1" == "details" (
set keypath=HKLMSoftwareClasses
echo ----- HKEY_LOCAL_MACHINE -----
call :query
set keypath=HKCUSoftwareClasses
echo.
echo ----- HKEY_CURRENT_USER -----
call :query
) else (
set keypath=HKCR
echo ----- HKEY_CLASSES_ROOT -----
call :query
)
goto end
:query
reg query %keypath%.py /ve
reg query %keypath%.pyw /ve
reg query %keypath%.pyc /ve
reg query %keypath%.pyo /ve
reg query %keypath%Python.Fileshellopencommand /ve
reg query %keypath%Python.NoConFileshellopencommand /ve
reg query %keypath%Python.CompiledFileshellopencommand /ve
goto :eof
:end
set keypath=
OUTPUT
Z:1>python_assoc.query.bat details
----- HKEY_LOCAL_MACHINE -----
HKEY_LOCAL_MACHINESoftwareClasses.py
(Default) REG_SZ Python.File
HKEY_LOCAL_MACHINESoftwareClasses.pyw
(Default) REG_SZ Python.NoConFile
HKEY_LOCAL_MACHINESoftwareClasses.pyc
(Default) REG_SZ Python.CompiledFile
HKEY_LOCAL_MACHINESoftwareClasses.pyo
(Default) REG_SZ Python.CompiledFile
HKEY_LOCAL_MACHINESoftwareClassesPython.Fileshellopencommand
(Default) REG_SZ c:Program FilesPython2.7python.exe "%1" %*
HKEY_LOCAL_MACHINESoftwareClassesPython.NoConFileshellopencommand
(Default) REG_SZ c:Program FilesPython2.7pythonw.exe "%1" %*
HKEY_LOCAL_MACHINESoftwareClassesPython.CompiledFileshellopencommand
(Default) REG_SZ c:Program FilesPython2.7python.exe "%1" %*
----- HKEY_CURRENT_USER -----
ERROR: The system was unable to find the specified registry key or value.
ERROR: The system was unable to find the specified registry key or value.
ERROR: The system was unable to find the specified registry key or value.
ERROR: The system was unable to find the specified registry key or value.
ERROR: The system was unable to find the specified registry key or value.
ERROR: The system was unable to find the specified registry key or value.
ERROR: The system was unable to find the specified registry key or value.
I also run Process Monitor (thanks Maximus) to see what registry keys are being read when running a.py
from command line. I have set filter to include only pid of cmd.exe
used to run a.py
file and to exclude operations of type RegCloseKey
.
"Operation","Path","Result","Detail"
"RegOpenKey","HKCUSoftwareMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKLMSOFTWAREMicrosoftWINDOWS NTCURRENTVERSIONAppCompatFlagsCustoma.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer","SUCCESS","Desired Access: Query Value"
"RegQueryValue","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerMaximizeApps","NAME NOT FOUND","Length: 144"
"RegOpenKey","HKLMSoftwareMicrosoftWindowsCurrentVersionExplorer","SUCCESS","Desired Access: Query Value"
"RegQueryValue","HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorerMaximizeApps","NAME NOT FOUND","Length: 144"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesDriveshellexFolderExtensions","NAME NOT FOUND","Desired Access: Enumerate Sub Keys"
"RegOpenKey","HKCRDriveshellexFolderExtensions","SUCCESS","Desired Access: Enumerate Sub Keys"
"RegQueryKey","HKCRDriveshellexFolderExtensions","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesDriveshellexFolderExtensions","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegEnumKey","HKCRDriveshellexFolderExtensions","SUCCESS","Index: 0, Name: {fbeb8a05-beee-4442-804e-409d6c4515e9}"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesDriveshellexFolderExtensions{fbeb8a05-beee-4442-804e-409d6c4515e9}","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCRDriveshellexFolderExtensions{fbeb8a05-beee-4442-804e-409d6c4515e9}","SUCCESS","Desired Access: Query Value"
"RegQueryKey","HKCRDriveshellexFolderExtensions{fbeb8a05-beee-4442-804e-409d6c4515e9}","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesDriveshellexFolderExtensions{fbeb8a05-beee-4442-804e-409d6c4515e9}","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCRDriveshellexFolderExtensions{fbeb8a05-beee-4442-804e-409d6c4515e9}DriveMask","SUCCESS","Type: REG_DWORD, Length: 4, Data: 32"
"RegEnumKey","HKCRDriveshellexFolderExtensions","NO MORE ENTRIES","Index: 1, Length: 288"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCR.py","SUCCESS","Desired Access: Query Value"
"RegQueryKey","HKCR.py","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR.py(Default)","SUCCESS","Type: REG_SZ, Length: 26, Data: Python.File "
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.pyOpenWithProgids","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR.pyOpenWithProgids","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pyOpenWithProgids","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pyOpenWithProgids","SUCCESS","Query: Cached, SubKeys: 0, Values: 2"
"RegEnumValue","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pyOpenWithProgids","SUCCESS","Index: 0, Length: 220"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesPython.File","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCRPython.File","SUCCESS","Desired Access: Read"
"RegEnumValue","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pyOpenWithProgids","SUCCESS","Index: 1, Length: 220"
"RegEnumValue","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pyOpenWithProgids","NO MORE ENTRIES","Index: 2, Length: 220"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR.py","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.py","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.py","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pyUserChoice","NAME NOT FOUND","Desired Access: Query Value"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesPython.File ","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCRPython.File ","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR.py","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR.py","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.pyshell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR.pyshell","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR.py","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesUnknown","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCRUnknown","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesSystemFileAssociations.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCRSystemFileAssociations.py","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCR.py","SUCCESS","Desired Access: Query Value"
"RegQueryKey","HKCR.py","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses.py","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR.pyPerceivedType","NAME NOT FOUND","Length: 144"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesSystemFileAssociations.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCRSystemFileAssociations.py","NAME NOT FOUND","Desired Access: Query Value"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses*","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses*","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses*shell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR*shell","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR*shell","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses*shell","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR*shell(Default)","NAME NOT FOUND","Length: 144"
"RegQueryKey","HKCR*shell","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClasses*shellopen","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR*shellopen","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCUSoftwareClasses","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesAllFilesystemObjects","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCRAllFilesystemObjects","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCRAllFilesystemObjects","SUCCESS","Query: Name"
"RegOpenKey","HKCUSoftwareClassesAllFilesystemObjectsshell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCRAllFilesystemObjectsshell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKLMSoftwareMicrosoftWindowsCurrentVersionSideBySide","SUCCESS","Desired Access: Read"
"RegQueryValue","HKLMCOMPONENTSPreferExt