การแนะนำ

วันนี้ฉันอยากจะแสดงให้คุณเห็นว่าคุณสามารถเปลี่ยนสคริปต์หลามจากสิ่งนี้ได้อย่างไร:

$ python3 coolscript.py

สำหรับสิ่งนี้:

$ coolscript

มันเสร็จสิ้นอย่างไร

วิธีที่คุณสามารถเปลี่ยนสคริปต์ python ให้เป็นคำสั่ง CLI เต็มรูปแบบได้คือการใช้ประโยชน์จาก setup.py ฉันจะสาธิตสิ่งนี้โดยการสร้างโปรแกรมที่จะดำเนินการเข้ารหัสซีซาร์กับข้อความใดๆ ที่คุณระบุ

โครงสร้างโครงการ

ก่อนอื่นเราจะต้องสร้างไดเร็กทอรีโครงการของเรา:

$ mkdir caesar 
$ cd caesar 
$ mkdir caesar 
$ touch setup.py 
$ touch caesar/__init__.py 
$ touch caesar/caesar.py

และสิ่งที่เราควรจะเหลือไว้คือโครงสร้างไดเร็กทอรีที่มีลักษณะดังนี้:

caesar/ 
|-- caesar 
| |-- __init__.py 
| `-- caesar.py 
`-- setup.py

สคริปต์

เมื่อคุณตั้งค่าไดเรกทอรีแล้ว เราจะสร้างสคริปต์ใน caesar.py วัตถุประสงค์ของบทช่วยสอนนี้ไม่ใช่เพื่อสอนวิธีสร้างสคริปต์ให้คุณ แต่ฉันจะเพิ่มไว้ด้านล่างหากคุณสนใจ

นอกจากนี้ เรายังต้องทำการเปลี่ยนแปลงหนึ่งครั้งในไฟล์ __init__.py เพื่อให้สามารถเข้าถึงสคริปต์ของเราภายในไดเร็กทอรีได้

ไฟล์ติดตั้ง

ตอนนี้เราได้เขียนสคริปต์ของเราเสร็จแล้ว ก็ถึงเวลากรอก setup.py ของเรา

มาแยกไฟล์นี้ทีละบรรทัดกัน อันดับแรก เรากำลังนำเข้า setuptools ซึ่งเป็นไลบรารีมาตรฐานที่ Python ใช้สำหรับการสร้างสคริปต์ ต่อไปเราจะเรียกใช้ฟังก์ชัน setup ของ setuptools และส่งผ่านพารามิเตอร์ที่ต้องการ พารามิเตอร์ที่เราต้องการเน้นมากที่สุดคือ entry_points

  • ชื่อ:ชื่อของสคริปต์
  • เวอร์ชัน:หมายเลขเวอร์ชันของสคริปต์ของคุณ
  • ผู้เขียน:ชื่อของคุณ
  • author_email:อีเมลของคุณ
  • คำอธิบาย:คำอธิบายสั้นๆ ว่าสคริปต์ของคุณทำอะไร
  • แพ็คเกจ:แพ็คเกจที่จำเป็นสำหรับสคริปต์ของคุณ
  • entry_points:โดยพื้นฐานแล้ววิธีการโต้ตอบกับสคริปต์ของคุณ ในตัวอย่าง เรากำลังระบุ console_scripts ซึ่งเป็นจุดเริ่มต้นที่ได้รับความนิยมมากที่สุด เนื่องจากช่วยให้เราระบุคำสั่ง cli ให้กับสคริปต์ของเราได้
  • ตัวแยกประเภท:ข้อกำหนดสำหรับผู้ใช้เพื่อทำความเข้าใจว่าภาษาและระบบปฏิบัติการใดที่จำเป็นในการเรียกใช้สคริปต์ของคุณ

จุดเข้า

ในไฟล์ setup.py ข้างต้น เราได้ระบุสิ่งต่อไปนี้สำหรับจุดเริ่มต้นของเรา

entry_points={
    'console_scripts': [ 
        'caesar = caesar.caesar:main' 
    ] 
},

ที่นี่ เรากำลังกำหนดค่าคำสั่ง caesar ให้เกี่ยวข้องกับฟังก์ชันหลักของเราในไฟล์สคริปต์ caesar.py ของเรา ตอนนี้เมื่อเรารันไฟล์ setup.py มันควรสร้างและติดตั้งสคริปต์ของเรา และอนุญาตให้เราเข้าถึงได้โดยใช้คำสั่ง caesar

$ sudo python3 setup.py install

ตอนนี้สคริปต์ของเราได้ถูกสร้างขึ้นแล้ว มาลองใช้มันบน CLI กัน

$ caesar "Test Message" 
Whvw Phvvdjh 
$ caesar "Whvw Phvvdjh" --decrypt 
Test Message

และมันก็ได้ผล! ตอนนี้เราสามารถใช้สคริปต์ของเราเป็นคำสั่ง CLI ได้

บทสรุป

การสร้างไฟล์ setup.py เป็นขั้นตอนสำคัญสำหรับโปรเจ็กต์ Python เนื่องจากไฟล์นี้จะช่วยให้คุณสามารถให้ข้อมูลเกี่ยวกับไฟล์แก่ผู้ใช้ และช่วยให้คุณสร้างฟังก์ชันพิเศษให้กับสคริปต์ เช่น การเพิ่มไฟล์เป็น CLI สั่งการ.

ขอบคุณที่อ่าน!

— คริส

เผยแพร่ครั้งแรกที่ ediblesec.com เมื่อวันที่ 28 พฤศจิกายน 2018