Mille grazie per la maggior parte delle altre risposte per avermi aiutato a trovare la soluzione!
Il mio caso era quello di aprire .py
-file con py.exe
(non python.exe
direttamente), questo caso è stato notato in un paio di commenti, ma ho deciso di postare questo come risposta separata per sottolineare la differenza.
Quindi ho i miei file .py
associati C:\Windows\py.exe
e in C:\Windows\py.ini
config ho un paio di definizioni shebang
[commands]
<my_venv_py> = C:\Programs\my_venv_py\Scripts\python.exe
<my_venv_py_w> = C:\Programs\my_venv_py\Scripts\pythonw.exe
da usare nei miei script come questo #!<MY_VENV_PY>
.
E su Microsoft Windows 7 [Versione 6.1.7601] il mio script Python NON ha ricevuto argomenti come questo
script.py 1 2
ma questo ha funzionato bene
py script.py 1 2
Le associazioni di file erano OK
> assoc .py
.py=Python.File
> ftype | grep Python
File STDIN:
Python.CompiledFile="C:\Windows\py.exe" "%1" %*
Python.File=C:\Windows\py.exe "%L" %*
Python.NoConFile="C:\Windows\pyw.exe" "%1" %*
Ho provato molte modifiche al registro, ma l'ultima modifica è stata la seguente modifica (salvata in un .reg
file ed eseguita). Ho trovato questa chiave di registro di ricerca "%1"
stringa con il valore iniziale "C:\Windows\py.exe" "%1"
e aggiunta %*
alla fine come nota di altre risposte:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\py.exe\shell\open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"
Per informazioni, prima ho provato a impostare queste chiavi e valori e non ho aiutato (almeno prima di quanto indicato sopra):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.py]
@="Python.File"
[HKEY_CURRENT_USER\Software\Classes\.py]
@="Python.File"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.py]
@="Python.File"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py]
@="Python.File"
[HKEY_CLASSES_ROOT\py_auto_file]
@="Python File"
[HKEY_CLASSES_ROOT\py_auto_file\shell\open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"
[HKEY_CLASSES_ROOT\Python.File]
@="Python File"
[HKEY_CLASSES_ROOT\Python.File\Shell\Open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"