Rất cảm ơn vì hầu hết các câu trả lời khác đã giúp tôi tìm ra giải pháp!
Trường hợp của tôi là mở tệp .py
với py.exe
(không python.exe
trực tiếp), trường hợp này nó đã ghi nhận trong một vài nhận xét, nhưng tôi quyết định đăng điều này như một câu trả lời riêng để nhấn mạnh sự khác biệt.
Vì vậy, tôi có .py
-files của mình được liên kết với C:\Windows\py.exe
và trong C:\Windows\py.ini
cấu hình, tôi có một vài định nghĩa 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
để sử dụng trong các tập lệnh của tôi như thế này #!<MY_VENV_PY>
.
Và trên Microsoft Windows 7 [Phiên bản 6.1.7601] tập lệnh python của tôi KHÔNG nhận được các hộp như thế này
script.py 1 2
nhưng điều này làm việc tốt
py script.py 1 2
Liên kết tệp ổn
> 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" %*
Tôi đã thử nhiều thay đổi sổ đăng ký, nhưng sự giúp đỡ cuối cùng là thay đổi sau (được lưu vào .reg
-tệp và chạy). Tôi đã tìm thấy "%1"
chuỗi tìm kiếm khóa đăng ký này với giá trị ban đầu "C:\Windows\py.exe" "%1"
và được thêm %*
vào cuối như các câu trả lời khác lưu ý:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\py.exe\shell\open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"
Để biết thông tin, trước khi tôi cố gắng thiết lập các khóa và giá trị này và không giúp được gì (ít nhất là trước khi được lưu ý ở trên):
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\" %*"