ฉันได้เริ่มเรียนรู้ python และฉันยังเป็นผู้ใช้ใหม่ของ Ubuntu ฉันจำเป็นต้องรู้วิธีการรวบรวม.pyไฟล์ ฉันได้ลองกับคำสั่ง
python "hello.py"
วิธีอื่น ๆ ในการรวบรวมไพ ธ อนคืออะไร?
ฉันได้เริ่มเรียนรู้ python และฉันยังเป็นผู้ใช้ใหม่ของ Ubuntu ฉันจำเป็นต้องรู้วิธีการรวบรวม.pyไฟล์ ฉันได้ลองกับคำสั่ง
python "hello.py"
วิธีอื่น ๆ ในการรวบรวมไพ ธ อนคืออะไร?
คำตอบ:
การเพิ่มคำตอบของไบรอันถ้าคุณเพียงต้องการรวบรวมไฟล์หรือไฟล์จำนวนมากจากเทอร์มินัลpy_compileโมดูลนั้นสามารถเรียกใช้งานเป็นสคริปต์ในลักษณะดังต่อไปนี้:
python -m py_compile fileA.py fileB.py fileC.py ...
โปรดระวังว่าคุณไม่จำเป็นต้องรวบรวม.pyไฟล์เพื่อใช้งาน Python เป็นภาษาที่ตีความและคุณสามารถเรียกใช้สคริปต์โดยตรงโดยใช้:
python hello.py
หรือทำให้สคริปต์ของคุณทำงานได้โดยการเพิ่ม#!/usr/bin/env pythonที่ด้านบนสุดของสคริปต์ทำให้ไฟล์chmod +x hello.pyนั้นทำงานด้วยแล้วเรียกใช้:
./hello.py
ความจริงที่ว่า Python รวบรวม.pyสคริปต์ของคุณไปยัง.pycไฟล์bytecode เพื่อเหตุผลด้านประสิทธิภาพคือรายละเอียดการนำไปปฏิบัติและถ้าคุณไม่มีเหตุผลอันสมควรที่จะทำเช่นนั้นให้ไพ ธ อนตัดสินใจเองเมื่อใดและจะรวบรวม
chmod +x) ล่ามจะอ่านสคริปต์อย่างไร
#!/path/to/interpreterเคอร์เนลจะดำเนินการสิ่งที่มีการประกาศที่นั่นจริงผ่านเส้นทางสคริปต์เป็นอาร์กิวเมนต์ ในตัวอย่างของฉันเมื่อคุณเรียกใช้สิ่งที่จะดำเนินการจริง./hello.py /usr/bin/env python ./hello.pyดูen.wikipedia.org/wiki/Shebang_(Unix)
chmod +xมอบให้ดำเนินการและไม่ได้สัมผัสสิทธิ์ที่มีอยู่ดังนั้นสันนิษฐานว่ามันสามารถอ่านได้นอกเหนือไปจากตอนนี้จะปฏิบัติได้
ลองดูที่ลิงค์นี้รวบรวมใน Python
ที่ตรงกลางของหน้านั้นจะพูดถึงโมดูล py_compile ที่สามารถนำเข้าได้ ไวยากรณ์มีดังนี้:
import py_compile
py_compile.compile("file.py")
วิธีการรวบรวมนี้จะไม่เรียกใช้งานโมดูลเช่นการเรียกใช้ python file.py
นอกจากนี้ยังมีวิธีการที่รวบรวมทรีไดเรกทอรีทั้งหมด แต่ฉันจะให้คุณตรวจสอบลิงก์เพื่อดูวิธีการใช้งาน
หวังว่านี่จะช่วยได้
คุณอาจลองcompileall:
python -m compileall ./
คุณสามารถคอมไพล์สคริปต์ Python ให้เป็นรหัสไบนารี่โดยใช้วิธีการต่าง ๆ แต่ฉันพบว่าการใช้ Nuitka นั้นมีประสิทธิภาพมากกว่า
Nuitka เป็นคอมไพเลอร์ Python-to-C ++ ที่รองรับไพ ธ อนเกือบทุกรุ่น
ไวยากรณ์คำสั่งนั้นง่ายเหมือน
nuitka hello.py
ไปที่http://nuitka.net/doc/user-manual.htmlสำหรับข้อมูลเพิ่มเติม
-Oตั้งค่าสถานะเช่นpython -O -m py_compile …ซึ่งจะ“ เปิดการปรับแต่งพื้นฐาน” โดยส่วนใหญ่แล้วจะเป็นการตัดassertคำสั่งและif __debug__รหัสออกไปดังนั้นสำหรับรหัสส่วนใหญ่จะไม่มีผลกระทบใด ๆ ดูman pythonและ“ การเพิ่มประสิทธิภาพ Python ทำอะไร…”เพื่อดูรายละเอียด