Muito obrigado pela maioria das outras respostas por me ajudar a encontrar a solução!
Meu caso foi abrir .py
-files com py.exe
(não python.exe
diretamente), neste caso ele notou em alguns comentários, mas decidi postar isso como uma resposta separada para enfatizar a diferença.
Portanto, tenho meus .py
-files associados C:\Windows\py.exe
e na C:\Windows\py.ini
configuração tenho algumas definições completas
[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 em meus scripts como este #!<MY_VENV_PY>
.
E no Microsoft Windows 7 [versão 6.1.7601] meu script python NÃO recebeu argumentos como este
script.py 1 2
mas funcionou bem
py script.py 1 2
As associações de arquivo estavam 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" %*
Eu tentei muitas mudanças no registro, mas a última ajuda foi a seguinte mudança (salva em um .reg
arquivo e executa). Encontrei esta "%1"
string de pesquisa de chave de registro com valor inicial "C:\Windows\py.exe" "%1"
e adicionei %*
no final como outras notas de resposta:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\py.exe\shell\open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"
Para obter informações, antes de tentar configurar essas chaves e valores e não ajudar (pelo menos antes do mencionado acima):
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\" %*"