Lập trình Python


Home / Tài liệu CNTT / Lập trình Python / Đóng gói chương trình Python – Chuyển file Python sang exe

Đóng gói chương trình Python – Chuyển file Python sang exe

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 qua bài viết dưới đây.

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.

Để 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.

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 Nhược điểm
PyInstaller Độ phổ biến cao
Đ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
Chương trình sau đóng gói khá nặng
Tốc độ chạy file exe chậm
Py2exe Tốc độ chạy file exe nhanh Không phổ biến
Không còn phát triển
Không thể tạo gộp một file exe
cx_Freeze Chương trình sau đóng gói cực nhẹ
Tốc độ chạy file exe nhanh<Đang được phát triển thêm>
Không 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

Khi so sánh các phương pháp chuyển file python sang exe đóng gói chương trình python này, chúng ta có thể thấy Py2exe đã quá cũ và không còn phổ biến. cx_Freeze thì nhanh hơn PyInstaller cũng như chương trình sau đóng gói thì nhẹ hơn, tuy nhiên cx_Freeze không thể đóng gói các thư viện của 3rd-parties như NumPy, SciPy, OpenCV, matplotlib, PyQT.

Do đó, khi cần đóng gói các chương trình đơn giản trong python, bạn nên sử dụng tới cx_Freeze, và khi cần đóng gói các chương trình có liên quan tới các thư viện thứ ba như ở trên, bạn nên dùng PyInstaller.

Pyinstaller trong python là gì

Theo như website chính thức PyInstaller Manual thì:

PyInstaller gói một ứng dụng Python và tất cả các phần phụ thuộc của nó vào một gói duy nhất. Người dùng có thể chạy ứng dụng đóng gói mà không cần cài đặt trình thông dịch Python hoặc bất kỳ mô-đun nào. PyInstaller hỗ trợ Python 3.6 hoặc mới hơn và đóng gói chính xác các gói Python chính như numpy, PyQt, Django, wxPython và các gói khác.

PyInstaller được thử nghiệm trên Windows, Mac OS X và GNU / Linux. Tuy nhiên, nó không phải là một trình biên dịch chéo: để tạo một ứng dụng Windows, bạn chạy PyInstaller trong Windows; để tạo ứng dụng GNU / Linux, bạn chạy ứng dụng đó trong GNU / Linux, v.v. PyInstaller đã được sử dụng thành công với AIX, Solaris, FreeBSD và OpenBSD nhưng thử nghiệm đối với chúng không phải là một phần trong các thử nghiệm tích hợp liên tục của chúng tôi.

Hiểu một cách đơn giản, 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

Chúng ta cài đặt Pyinstaller vào python bằng lệnh sau đây:

Python sẽ tiến hành cài Pyinstaller và nếu dòng Successfully installed hiện ra, quá trình cài đặt đã thành công.
Đóng gói chương trình python bằng Pyinstaller

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

Chúng ta ghi mã nguồn của chương trình python cần đóng gói và lưu vào file py trước khi tiến hành đóng gói.

Ví dụ, chúng ta cần đóng gói chương trình máy tính bằng python như sau:

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

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

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:

(Trước khi chạy lệnh pyinstaller bạn cần di chuyển đến đúng thư mục lưu file .py của bạn, ở đây mình lưu file calculator.py ở thư mục có đường dẫn như sau: C:\Users\hii\PycharmProjects\excel)

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:

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

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:

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 > calculator.exe. 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.

Bạn lưu ý chương trình có sử dụng file âm thanh bạn cần copy file âm thanh vào cùng thư mục với file calculator.exe để chạy nhé. Nếu không chương trình sẽ báo lỗi không tìm thấy file âm thanh.

Đây là kết quả sau khi đóng gói Python sang exe thành công:

Tổng kết

Trên đây Gocchiase.net đã 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é.

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.