ฉันใช้ Debian Linux
ฉันสงสัยว่ามีวิธีกำหนดค่าให้เรียกใช้สคริปต์ Python ทั้งหมดในเทอร์มินัลด้วยการพิมพ์script.py
(แทนpython script.py
)
ฉันใช้ Debian Linux
ฉันสงสัยว่ามีวิธีกำหนดค่าให้เรียกใช้สคริปต์ Python ทั้งหมดในเทอร์มินัลด้วยการพิมพ์script.py
(แทนpython script.py
)
คำตอบ:
มีสองสิ่งที่คุณต้องทำ:
chmod +x script.py
ใช้ shebang เพื่อให้เคอร์เนลรู้ว่าล่ามอะไรควรใช้ บรรทัดบนสุดของสคริปต์ควรอ่าน:
#!/usr/bin/python
นี่ถือว่าสคริปต์ของคุณจะทำงานด้วย python เริ่มต้น หากคุณต้องการรุ่นเฉพาะเพียงระบุใน shebang:
#!/usr/bin/python2.7
ตอนนี้คุณสามารถพิมพ์:
./script.py
ถ้าสคริปต์อยู่ในไดเรกทอรีปัจจุบันของคุณหรือ:
script.py
ถ้าตำแหน่งของสคริปต์เกิดขึ้นใน PATH ของคุณหรือ:
path/to/script.py
มิฉะนั้น.
bash
ว่าจะอ่านไฟล์เมื่อดำเนินการ ...
./script.py
ไม่ใช่script.py
ภายใต้ linux คุณสามารถใช้ hashbang (aka shebang) เพิ่มบรรทัด
#!/usr/bin/python
หากคุณต้องการดำเนินการล่ามหลามเริ่มต้น
#!/path/to/python[x.x]
เพื่อใช้งานบางรุ่นหรือ
#!/usr/bin/env python
หากคุณต้องการสภาพแวดล้อมในการค้นหาหลามให้คุณ
คุณจะต้องทำการเรียกใช้สคริปต์
chmod +x script[.py]
ใช้:
#!/usr/bin/env python
สิ่งนี้จะช่วยให้มั่นใจได้ว่าไพ ธ อนที่ผู้ใช้คาดว่าจะใช้นั้นจะเป็นสคริปต์ที่รัน นี่เป็นสิ่งสำคัญอย่างยิ่งหากผู้ใช้ใช้ virtualenv เพื่อให้มีเวอร์ชันเฉพาะของ python ในสภาพแวดล้อมที่กำหนด
ใช้บรรทัด shebang ที่ด้านบนของสคริปต์ของคุณดังนี้:
อัพเดตเวอร์ชั่นของไพ ธ อนที่เหมาะสมซึ่งคุณต้องการใช้งานสคริปต์ เช่นสำหรับ python 3.6
สำหรับล่ามเริ่มต้น
หมายเหตุ: ตรวจสอบให้แน่ใจว่าสคริปต์มีสิทธิ์ดำเนินการได้
#!/usr/bin/env python
ในกรณีที่ผู้ใช้มี python ในตัว (เช่นใน/usr/local/bin
) ซึ่งผู้ใช้ต้องการรันสคริปต์ด้วย