¡Muchas gracias por la mayoría de las otras respuestas por ayudarme a encontrar la solución!
Mi caso fue abrir .py
archivos con py.exe
(no python.exe
directamente), este caso se señaló en un par de comentarios, pero decidí publicar esto como una respuesta separada para enfatizar la diferencia.
Entonces tengo mis .py
archivos asociados C:\Windows\py.exe
y en la C:\Windows\py.ini
configuración tengo un par de definiciones de 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
para usar en mis scripts como este #!<MY_VENV_PY>
.
Y en Microsoft Windows 7 [Versión 6.1.7601] mi script de Python NO recibió los argumentos como este
script.py 1 2
pero esto funcionó bien
py script.py 1 2
Las asociaciones de archivos estaban bien
> 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" %*
He intentado muchos cambios en el registro, pero el último que me ayudó fue el siguiente cambio (guardado en un .reg
archivo y ejecutado). Encontré esta "%1"
cadena de búsqueda de clave de registro con valor inicial "C:\Windows\py.exe" "%1"
y la agregué %*
al final como nota de otras respuestas:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\py.exe\shell\open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"
Para obtener información, antes de intentar configurar estas claves y valores y no ayudó (al menos antes de lo mencionado anteriormente):
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\" %*"