Ausführen von Python-Skript von der Kommandozeile aus öffnet script in die Standard-text-editor anstelle der Ausführung des Skripts
Ich habe Dateien mit .py
Erweiterung im Zusammenhang mit Python-interpreter. Aber wenn ich Namen wie eine Datei in die Kommandozeile und drücken Sie ENTER
die Datei wird geöffnet in der Standard-text-editor (Notepad++) statt ausgeführt wird, mit der zugehörigen Python-interpreter. Warum?
Z:\1>where python
c:\Program Files\Python\2.7\python.exe
Z:\1>reg query HKCR\.py /ve
HKEY_CLASSES_ROOT\.py
(Default) REG_SZ Python.File
Z:\1>reg query HKCR\Python.File\shell\open\command /ve
HKEY_CLASSES_ROOT\Python.File\shell\open\command
(Default) REG_SZ c:\Program Files\Python\2.7\python.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
Bin ich auf Windows Vista x64 mit Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
UPDATE
Nach dem löschen HKEY_CLASSES_ROOT\Unknown\shell\notepad++\command
Schlüssel (ich habe diesen Schlüssel in der Vergangenheit in meiner Suche zu verbinden Dateien ohne Endung mit Notepad++ - siehe Wie legen Sie die Standard-Programm zum öffnen von Dateien ohne Erweiterung in Windows?), die hatte den Wert C:\Program Files (x86)\Notepad++\notepad++ %1
bekomme ich diesen Fehler:
Dieser Datei ist kein Programm zugeordnet zum ausführen
an dieser Aktion. Erstellen Sie eine Zuordnung in der Set-Verbände kontrollieren
panel.
UPDATE 2
Zeigt alle registry-Schlüssel verwendet, die normalerweise durch das system, um herauszufinden, welches Programm zugeordnet ist .py
Erweiterung I führen Sie die folgende batch-Datei (python_assoc.query.bat
):
@echo off
if "%~1" == "details" (
set keypath=HKLM\Software\Classes
echo ----- HKEY_LOCAL_MACHINE -----
call :query
set keypath=HKCU\Software\Classes
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.File\shell\open\command /ve
reg query %keypath%\Python.NoConFile\shell\open\command /ve
reg query %keypath%\Python.CompiledFile\shell\open\command /ve
goto :eof
:end
set keypath=
AUSGABE
Z:\1>python_assoc.query.bat details
----- HKEY_LOCAL_MACHINE -----
HKEY_LOCAL_MACHINE\Software\Classes\.py
(Default) REG_SZ Python.File
HKEY_LOCAL_MACHINE\Software\Classes\.pyw
(Default) REG_SZ Python.NoConFile
HKEY_LOCAL_MACHINE\Software\Classes\.pyc
(Default) REG_SZ Python.CompiledFile
HKEY_LOCAL_MACHINE\Software\Classes\.pyo
(Default) REG_SZ Python.CompiledFile
HKEY_LOCAL_MACHINE\Software\Classes\Python.File\shell\open\command
(Default) REG_SZ c:\Program Files\Python\2.7\python.exe "%1" %*
HKEY_LOCAL_MACHINE\Software\Classes\Python.NoConFile\shell\open\command
(Default) REG_SZ c:\Program Files\Python\2.7\pythonw.exe "%1" %*
HKEY_LOCAL_MACHINE\Software\Classes\Python.CompiledFile\shell\open\command
(Default) REG_SZ c:\Program Files\Python\2.7\python.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.
Ich auch führen Sie Process Monitor (Dank Maximus), um zu sehen, welche registry-keys werden ausgelesen wird, wenn ausgeführt a.py
von der Kommandozeile aus. Ich habe filter setzen, um nur pid cmd.exe
ausgeführt a.py
- Datei und zum Ausschluss von Operationen vom Typ RegCloseKey
.
"Operation","Path","Result","Detail"
"RegOpenKey","HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKLM\SOFTWARE\Microsoft\WINDOWS NT\CURRENTVERSION\AppCompatFlags\Custom\a.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer","SUCCESS","Desired Access: Query Value"
"RegQueryValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MaximizeApps","NAME NOT FOUND","Length: 144"
"RegOpenKey","HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer","SUCCESS","Desired Access: Query Value"
"RegQueryValue","HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\MaximizeApps","NAME NOT FOUND","Length: 144"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions","NAME NOT FOUND","Desired Access: Enumerate Sub Keys"
"RegOpenKey","HKCR\Drive\shellex\FolderExtensions","SUCCESS","Desired Access: Enumerate Sub Keys"
"RegQueryKey","HKCR\Drive\shellex\FolderExtensions","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegEnumKey","HKCR\Drive\shellex\FolderExtensions","SUCCESS","Index: 0, Name: {fbeb8a05-beee-4442-804e-409d6c4515e9}"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCR\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","SUCCESS","Desired Access: Query Value"
"RegQueryKey","HKCR\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}\DriveMask","SUCCESS","Type: REG_DWORD, Length: 4, Data: 32"
"RegEnumKey","HKCR\Drive\shellex\FolderExtensions","NO MORE ENTRIES","Index: 1, Length: 288"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Query Value"
"RegQueryKey","HKCR\.py","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\.py\(Default)","SUCCESS","Type: REG_SZ, Length: 26, Data: Python.File "
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py\OpenWithProgids","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\.py\OpenWithProgids","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Query: Cached, SubKeys: 0, Values: 2"
"RegEnumValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Index: 0, Length: 220"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Python.File","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\Python.File","SUCCESS","Desired Access: Read"
"RegEnumValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Index: 1, Length: 220"
"RegEnumValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","NO MORE ENTRIES","Index: 2, Length: 220"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice","NAME NOT FOUND","Desired Access: Query Value"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Python.File ","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\Python.File ","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR\.py","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py\shell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\.py\shell","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Unknown","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\Unknown","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Query Value"
"RegQueryKey","HKCR\.py","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\.py\PerceivedType","NAME NOT FOUND","Length: 144"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Query Value"
"RegOpenKey","HKCR\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Query Value"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\*","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes\*","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\*\shell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\*\shell","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR\*\shell","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\*\shell","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\*\shell\(Default)","NAME NOT FOUND","Length: 144"
"RegQueryKey","HKCR\*\shell","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\*\shell\open","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\*\shell\open","NAME NOT FOUND","Desired Access: Read"
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\AllFilesystemObjects","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\AllFilesystemObjects","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR\AllFilesystemObjects","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\AllFilesystemObjects\shell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\AllFilesystemObjects\shell","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide","SUCCESS","Desired Access: Read"
"RegQueryValue","HKLM\COMPONENTS\PreferExternalManifest","NAME NOT FOUND","Length: 20"
"RegOpenKey","HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide\AssemblyStorageRoots","REPARSE","Desired Access: Enumerate Sub Keys"
"RegOpenKey","HKLM\COMPONENTS\AssemblyStorageRoots","NAME NOT FOUND","Desired Access: Enumerate Sub Keys"
"RegOpenKey","HKLM\Software\Microsoft\DirectUI","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKLM\Software\Microsoft\CTF\TIP\{0000897b-83df-4b96-be07-0fb58b01c4a4}\LanguageProfile\0x00000000\{0001bea3-ed56-483d-a2e2-aeae25577436}","SUCCESS","Desired Access: Read"
"RegQueryValue","HKLM\SOFTWARE\Microsoft\CTF\TIP\{0000897b-83df-4b96-be07-0fb58b01c4a4}\LanguageProfile\0x00000000\{0001bea3-ed56-483d-a2e2-aeae25577436}\Enable","SUCCESS","Type: REG_DWORD, Length: 4, Data: 1"
"RegOpenKey","HKCU","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCU\Keyboard Layout\Toggle","SUCCESS","Desired Access: Read"
"RegQueryValue","HKCU\Keyboard Layout\Toggle\Language Hotkey","SUCCESS","Type: REG_SZ, Length: 4, Data: 3"
"RegQueryValue","HKCU\Keyboard Layout\Toggle\Layout Hotkey","SUCCESS","Type: REG_SZ, Length: 4, Data: 3"
"RegOpenKey","HKCU","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCU\SOFTWARE\Microsoft\CTF\LangBarAddIn","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\LangBarAddIn","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCU","SUCCESS","Desired Access: Read"
"RegOpenKey","HKCU\Software\Microsoft\CTF\DirectSwitchHotkeys","SUCCESS","Desired Access: Read"
"RegEnumKey","HKCU\Software\Microsoft\CTF\DirectSwitchHotkeys","NO MORE ENTRIES","Index: 0, Length: 288"
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\KnownClasses","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\KnownClasses","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKLM\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","SUCCESS","Desired Access: Read"
"RegQueryValue","HKLM\SOFTWARE\Microsoft\WINDOWS NT\CURRENTVERSION\FontSubstitutes\Segoe UI","NAME NOT FOUND","Length: 144"
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\KnownClasses","NAME NOT FOUND","Desired Access: Read"
- möglich, Duplikat der Herstellung von Python-Skripten unter Windows ausgeführt werden, ohne Angabe ".py" - Erweiterung
- Es ist nicht doppelt, die Frage. Ich spreche nicht über das ausführen von Python-Skripts ohne schriftlich seine Erweiterung.
- Überprüfen Sie und erstellen, wenn nötig, Ihre Python-Datei Verbände.
- hast du eigentlich gelesen, den link, oder schauen Sie sich nur die Titel? Es zeigt Ihnen, wie Sie zu verknüpfen .py-Dateien mit dem python-interpreter.
- Haben Sie bemerkt, ich habe sogar bearbeitet, die Frage in der Vergangenheit? Sie haben eindeutig keine Ahnung, was das problem, das ich beschreibe, hier.
- Wie Sie sehen können aus der Ausgabe von
reg query...
Befehle, die ich zitierte in meiner Frage, meine Assoziationen sind richtig eingestellt. - Sie könnten versuchen, es zu installieren pylauncher. Es registriert sich selbst zum ausführen von python-Dateien. Es sollten erhalten Sie die Einstellungen
- Vielen Dank für die Anregung (ich bin mir bewusst, diese app), aber ich würde gerne wissen, was hier Los ist.
- Wenn es das Problem behebt, werden Sie wissen, auf welche Einstellungen sollte man genauer hinsehen. Wenn es nicht Sie wissen, zu suchen, woanders. Siehe pylauncher screencast
- Da alles andere versagt hat, einfach neu installieren Python.
- Haben Sie versucht, läuft
assoc .PY=Python.File
undftype Python.File=c:\Program Files\Python\2.7\python.exe "%1" %*
in einer erhöhten Konsole? - Sie könnte auch überprüfen Sie die Benutzer-Einstellungen in
HKCU\Software\Classes
. - Diese behoben das problem - bitte schreiben Sie als Antwort. Aber ich weiß noch nicht, was kaputt war, wie der Ausgang aus meiner batch-Datei ist identisch mit der vor der Ausführung
assoc
undftype
. Ich dachte, dass meine batch-Datei zeigt alle registry-Schlüssel, dieassoc
undftype
könnte möglicherweise ändern... ich denke, ich sollte überprüfen, welche registry-Schlüssel geschrieben werden, die durch diese Programme mit Process Monitor.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen, ich würde sicherstellen, dass der Verein nicht überschrieben von den Einstellungen für den aktuellen Benutzer:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice
HKCU\Software\Classes\.py
HKCU\Software\Classes\Python.File
Jedoch, wie ich gelesen habe den Process Monitor-Ausgang in dein update, es funktioniert nicht erscheinen, dass jede dieser
HKCU
Schlüssel auf dem system definiert sind.Mein Nächster Schritt wäre, um führen Sie den folgenden in einer erhöhten
cmd
Konsole:Soweit ich weiß, dadurch wird das system association in
HKLM\Software\Classes
- und tut sonst nichts. Basierend auf den Informationen in deiner Frage, es scheint, dies war bereits richtig eingestellt. Also ich weiß nicht, was entwederassoc
oderftype
hast, um das problem zu beheben.cmd.exe
war ich laufen war 64bit, wenn ichpython
später zu berichten sein, die genaue version meiner Frage, die Versionsinformationen endete miton win32
text. Ich kann es nicht reproduzieren nun - es gibt keineon win32
suffix mehr. Zusätzlich bei der Betrachtung registry-Schlüssel geändert werden, indemftype
Befehl, den ich sehen, es ändertWow6432Node
Kollegen auch. Vielleicht gab es etwas falsch mitWow6432Node
version von registry-Schlüsseln undftype
behoben. Aber ich erinnere mich 32bit keys waren die gleichen wie die 64bit sind...Werden können, dies kann helfen, zu machen ("open" als Standard-verb)?
oder dies (berücksichtigt Quoten um
python.exe
Pfad)?a
im cmd-prompt. Die Analyse der log, ich glaube, es kann Ihnen einen Tipp gebenIch ve wurde kämpfen mit diesem problem, ebenso wie Piotr. Der Vorschlag von eriksyn führte mich zu einem funktionierenden system.
Seit Notepad2 war immer die Eröffnung meiner "ich-will-zu-laufen-diese" Aufrufe, muss es sein, dass ich etwas haben, die alle Dateien mit Notepad2, und jetzt wusste ich, wo Sie suchen (ich habe versucht mit Process Monitor zuvor, aber der Ausgang war zu umfangreich).
Habe ich
.py
Einträge mit Notepad2 InhaltHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
in meiner registry. Ich nehme an, entweder Notepad2 Hinzugefügt, diese selbst, oder habe ich das irgendwie bei der Konfiguration Dinge. Insbesondere:Mit dieser Registrierungsschlüssel und-Wert, zu versuchen, die zum ausführen eines Python-Skript öffnet einfach Notepad2.
Ohne diese registry key, meine Python Skripte tatsächlich ausgeführt, nicht mehr, weshalb ich der Typ "python <script>" ausführen.
Bin ich glücklich. Danke, Stack Overflow.
Können Sie nicht einfach tun dies in der GUI Weg?
"Öffnen mit..." -> Suche -> python.exe und Häkchen bei "immer mit diesem Programm..."