ขอบคุณมากสำหรับคำตอบอื่น ๆ ที่ช่วยฉันหาวิธีแก้ปัญหา!
กรณีของฉันคือการเปิด - .py
ไฟล์ที่มีpy.exe
(ไม่ใช่python.exe
โดยตรง) กรณีนี้ระบุไว้ในสองความคิดเห็น แต่ฉันตัดสินใจโพสต์สิ่งนี้เป็นคำตอบแยกต่างหากเพื่อเน้นความแตกต่าง
ดังนั้นฉันจึงมี.py
-files ของฉันที่เกี่ยวข้องC:\Windows\py.exe
และในC:\Windows\py.ini
config ฉันมีคำจำกัดความของ 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
#!<MY_VENV_PY>
ที่จะใช้ในสคริปต์ของฉันเช่นนี้
และบน Microsoft Windows 7 [เวอร์ชัน 6.1.7601] สคริปต์ python ของฉันไม่ได้รับ args เช่นนี้
script.py 1 2
แต่มันก็ใช้ได้ดี
py script.py 1 2
การเชื่อมโยงไฟล์ทำได้ดี
> 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" %*
ฉันได้ลองเปลี่ยนรีจิสทรีหลายครั้งแล้ว แต่การช่วยเหลือครั้งสุดท้ายคือการเปลี่ยนแปลงต่อไปนี้ (บันทึกลงใน.reg
ไฟล์และเรียกใช้) ฉันพบ"%1"
สตริงการค้นหาคีย์รีจิสทรีนี้พร้อมค่าเริ่มต้น"C:\Windows\py.exe" "%1"
และเพิ่ม%*
ในตอนท้ายเป็นคำตอบอื่น ๆ หมายเหตุ:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\py.exe\shell\open\command]
@="\"C:\\Windows\\py.exe\" \"%1\" %*"
สำหรับข้อมูลก่อนที่ฉันจะพยายามตั้งค่าคีย์และค่าเหล่านี้ แต่ไม่ได้ช่วยอะไร (อย่างน้อยก่อนที่จะระบุไว้ข้างต้น):
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\" %*"