Hướng dẫn combine python to exe - kết hợp python với exe

Nội dung chính

  • Vì sao chúng ta cần đóng gói chương trình python?
  • Pyinstaller trong python là gì
  • Đóng gói chương trình python bằng Pyinstaller
  • Cài đặt Pyinstaller
  • Chuẩn bị chương trình python cần đóng gói
  • Tiến hành chuyển file python sang exe và đóng gói chương trình
  • Tổng kết

Hướng dẫn cách đóng gói chương trình python với Pyinstaller. Bạn sẽ học được cách dùng Pyinstaller để chuyển file python sang exe và đóng gói chương trình python sau bài học này.đóng gói chương trình python với Pyinstaller. Bạn sẽ học được cách dùng Pyinstaller để chuyển file python sang exe và đóng gói chương trình python sau bài học này.

Vì sao chúng ta cần đóng gói chương trình python?

Pyinstaller trong python là gì

Đóng gói chương trình python bằng Pyinstaller

Cài đặt Pyinstallerchuyển file python sang exeđóng gói chương trình python thành một chương trình độc lập có khả năng chạy ở các máy khác nhau mà không cần phải cài đặt môi trường python.

Chuẩn bị chương trình python cần đóng gói

Tiến hành chuyển file python sang exe và đóng gói chương trìnhTổng kếtHướng dẫn cách đóng gói chương trình python với Pyinstaller. Bạn sẽ học được cách dùng Pyinstaller để chuyển file python sang exe và đóng gói chương trình python sau bài học này.
Trong bài viết Cách viết, lưu và chạy chương trình python, chúng ta đã biết để chạy chương trình python, bạn cần phải tạo môi trường chạy python trong máy, cài các module cần thiết phục vụ chương trình v.v.. Sau đó bạn cũng cần phải lưu mã nguồn chương trình vào file py và chạy file này trên Anaconda hoặc DOS.Nếu như bạn chỉ cần chạy chương trình python đã viết trên máy của mình, bạn không cần thiết phải đóng gói chương trình python. Tuy nhiên trong trường hợp bạn cần đưa chương trình này cho một người thứ 3 sử dụng, hay là muốn sử dụng chương trình trong một máy tính khác chẳng hạn, sẽ là rất rắc rối cho việc cài đặt và chuẩn bị môi trường python để chạy chương trình này.
Đang được phát triển thêm
Tương thích với hầu hết các phiên bản mới của python
Có thể tạo gộp một file exe
Để tiết kiệm công sức và thoát khỏi hầu hết các công việc phức tạp ở trên, chúng ta cần chuyển file python sang exe và đóng gói chương trình python thành một chương trình độc lập có khả năng chạy ở các máy khác nhau mà không cần phải cài đặt môi trường python.
Tốc độ chạy file exe chậm
Có rất nhiều phương pháp để đóng gói chương trình python, trong đó phải kể đến 3 phương pháp tiêu biểu với ưu và nhược điểm kể đến như sau:Phương phápƯu điểm
Không còn phát triển
Không thể tạo gộp một file exe
Nhược điểmPyInstaller
Tốc độ chạy file exe nhanh<Đang được phát triển thêm>
Độ phổ biến caoĐang được phát triển thêmTương thích với hầu hết các phiên bản mới của pythonCó thể tạo gộp một file exe
Không thể đóng gói các thư viện của 3rd-parties như NumPy, SciPy, OpenCV, matplotlib, PyQT

Chương trình sau đóng gói khá nặngTốc độ chạy file exe chậm

Py2exe

Tốc độ chạy file exe nhanh

Không phổ biếnKhông còn phát triểnKhông thể tạo gộp một file exe

Pyinstaller trong python là gì

cx_Freeze

Chương trình sau đóng gói cực nhẹTốc độ chạy file exe nhanh

Không thể tạo gộp một file exeKhông thể đóng gói các thư viện của 3rd-parties như NumPy, SciPy, OpenCV, matplotlib, PyQT

Bạn có thể tham khảo so sánh độ phổ biến giữa PyInstaller và Py2exe sau đây:Pyinstaller trong python là một module có chức năng tạo một tệp thực thi độc lập (exe) duy nhất từ một ứng dụng python và các thành phần phụ thuộc của nó. Chúng ta sử dụng Pyinstaller để chuyển file python sang exe và đóng gói chương trình python.

Đóng gói chương trình python bằng Pyinstaller

Cài đặt Pyinstaller

Chuẩn bị chương trình python cần đóng gói

pip install pyinstaller

Tiến hành chuyển file python sang exe và đóng gói chương trình

Chuẩn bị chương trình python cần đóng gói

Tiến hành chuyển file python sang exe và đóng gói chương trình

Tổng kết

import cv2


capture = cv2.VideoCapture(0)

while True:
ret, frame = capture.read()
if not ret:
continue
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

capture.release()
cv2.destroyAllWindows()

Trong chương trình trên, chúng ta cần sử dụng tới module cs2 trong thư viện OpenCV, do đó hãy đảm bảo bạn đã cài OpenCV trong máy bằng lệnh cài sau đây:

pip install opencv-python

Hãy lưu lại mã nguồn chương trình với tên file là video_capture.py và tiến hành các bước tiếp theo.

  |data/
  |--video_capture.py

Tiến hành chuyển file python sang exe và đóng gói chương trình

Sau khi chuẩn bị xong xuôi, chúng ta tiến hành chuyển file python sang exe và đóng gói chương trình bằng cách chỉ định đường dẫn của file python đằng sau lệnh pyinstaller như dưới đây:

pyinstaller video_capture.py

Pyinstaller sẽ tiến hành build các file và thư mục cần thiết để chạy chương trình cần đóng gói như sau:

Nếu như dòng chữ Building EXE from EXE-00.toc completed successfully. xuất hiện thì bạn đã đóng gói phần mềm python thành công rồi đấy.

Lại nữa, nếu bạn muốn đóng gói phần mềm python và tất cả các phần phụ thuộc của nó vào một file exe duy nhất, hãy sử dụng tới lệnh sau đây:một file exe duy nhất, hãy sử dụng tới lệnh sau đây:

pyinstaller video_capture.py --onefile

Khi đó, phần mềm python cần đóng gói và tất cả các thành phần liên quan sẽ được gói cả vào một file exe trong folder dist > video_capture. Bạn có thể đổi tên file exe này cho phù hợp và sử dụng nó độc lập như là một chương trình trong máy tính của mình.

  |data/
  |--dist
  |    |--video_capture
  |           |--video_capture.exe
  |--video_capture.py

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách đóng gói chương trình python bằng Pyinstaller rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.đóng gói chương trình python bằng Pyinstaller rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">Bài viết liên quanĐóng gói chương trình python với cx_FreezeSubprocess trong Python và gọi một lệnh hoặc ứng dụng khác từ PythonBiến trong python là gìGán biến trong pythonCách khai báo, khởi tạo và gán biến trong pythonNhập biến trong pythonXóa biến trong pythonCài đặt anaconda cho ubuntuHãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam! HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>18. đóng gói chương trình pythonBài sauĐóng gói chương trình python với cx_FreezeBài tiếpSubprocess trong Python và gọi một lệnh hoặc ứng dụng khác từ PythonBài viết mới nhấtLàm tròn số trong JavaScript (Math.round, Math.ceil, Math.floor) tháng 7 1, 2022Số mũ trong JavaScript (Math.pow, Math.exp) tháng 7 1, 2022Math.max và Math.min trong JavaScript tháng 7 1, 2022Math.random trong JavaScript tháng 7 1, 2022throw trong JavaScript và cách trả về ngoại lệ tuỳ ý tháng 7 1, 2022Các ngoại lệ trong JavaScript và cách xử lý tương ứng tháng 7 1, 2022try...catch trong JavaScript và cách xử lý ngoại lệ tháng 7 1, 2022Xử lý ngoại lệ của hàm xử lý mô tả trong khối try tháng 7 1, 2022ProfileTác giả : Kiyoshi (Chis Thanh)Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.