ฉันได้เริ่มเรียนรู้ 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 ทำอะไร…”เพื่อดูรายละเอียด