Tôi đã bắt đầu học python và tôi cũng là người dùng mới cho Ubuntu. Tôi cần biết cách biên dịch các .py
tập tin. Tôi đã thử với lệnh
python "hello.py"
Những cách khác để biên dịch trăn là gì?
Tôi đã bắt đầu học python và tôi cũng là người dùng mới cho Ubuntu. Tôi cần biết cách biên dịch các .py
tập tin. Tôi đã thử với lệnh
python "hello.py"
Những cách khác để biên dịch trăn là gì?
Câu trả lời:
Cũng lưu ý rằng bạn không cần phải biên dịch một .py
tệp để chạy nó. Python là ngôn ngữ được diễn giải và bạn có thể chạy các tập lệnh trực tiếp bằng cách sử dụng:
python hello.py
Hoặc làm cho tập lệnh của bạn có thể thực thi được bằng cách thêm #!/usr/bin/env python
vào đầu tập lệnh, làm cho tập tin có thể thực thi được chmod +x hello.py
và sau đó chạy:
./hello.py
Thực tế là Python biên dịch nội bộ .py
tập lệnh của bạn thành .pyc
các tệp mã byte vì lý do hiệu năng là một chi tiết triển khai và trừ khi bạn có lý do chính đáng để làm như vậy, hãy để python tự quyết định khi nào và nếu biên dịch.
chmod +x
), trình thông dịch đọc tập lệnh như thế nào?
#!/path/to/interpreter
, kernel thực sự thực thi bất cứ điều gì được khai báo ở đó, chuyển đường dẫn kịch bản thành đối số. Trong ví dụ của tôi, khi bạn chạy ./hello.py
những gì thực sự được thực thi là /usr/bin/env python ./hello.py
. Xem en.wikipedia.org/wiki/Shebang_(Unix)
chmod +x
các khoản tài trợ thực thi và không chạm vào các quyền hiện có nên có lẽ nó có thể đọc được ngoài việc có thể thực thi được.
Kiểm tra liên kết này Biên dịch bằng Python
Ở giữa trang, nó nói về mô-đun py_compile có thể được nhập. Cú pháp như sau:
import py_compile
py_compile.compile("file.py")
Phương pháp biên dịch này sẽ không thực thi mô-đun giống như chạy python file.py.
Ngoài ra còn có một phương thức biên dịch toàn bộ cây thư mục nhưng tôi sẽ cho phép bạn kiểm tra liên kết để xem cách nó được thực thi.
Hi vọng điêu nay co ich.
Bạn cũng có thể thử compileall
:
python -m compileall ./
Bạn có thể biên dịch tập lệnh Python thành mã nhị phân bằng nhiều phương thức khác nhau, nhưng tôi đã phát hiện ra rằng sử dụng Nuitka hiệu quả hơn.
Nuitka là trình biên dịch Python-to-C ++, hỗ trợ hầu hết tất cả các phiên bản của python.
Cú pháp lệnh dễ như
nuitka hello.py
Goto http://nuitka.net/doc/user-manual.html để biết thêm thông tin.
-O
cờ, như thếpython -O -m py_compile …
, nó sẽ bật tính năng tối ưu hóa cơ bản. Nó chủ yếu loại bỏ cácassert
câu lệnh vàif __debug__
mã, vì vậy đối với hầu hết các mã, nó không có hiệu lực. Xemman python
và trên mạng Tối ưu hóa Python làm gì? Để biết chi tiết.