Đóng gói chương trình python với cx_Freeze | Laptrinhcanban.com

Đóng gói chương trình python với cx_Freeze

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

cx_Freeze trong python là gì

cx_Freeze trong python là một module có chức năng tạo một tệp thực thi độc lập (exe) từ một tập lệnh Python (py). Chúng ta sử dụng cx_Freeze để chuyển file python sang exe và đóng gói chương trình python.

cx_Freeze trong python là gì

cx_Freeze đã có lịch sử lâu đời.Kể từ năm 2003, phiên bản 2.1 của nó đã được phát hành và tiếp tục được update đến tận bây giờ.

Theo như trang web slant.co thì cx_Freeze đứng thứ 2 trong bảng xếp hạng các module hỗ trợ đóng gói chương trình python, và hầu hết người dùng đều lựa chọn cx_Freeze nếu đem so sánh nó với người anh em Pyinstaller.

If you have a Python Script, you can use cx_Freeze to turn it into an executable on the platform you use it for. It will run on any platform where Python itself runs on. Note, however, that it can’t cross-compile.

cx_Freeze có ưu điểm là giúp chúng ta đóng gói chương trình python cực nhanh, với chương trình đầu ra có dung lượng nhỏ giúp đỡ tốn tài nguyên máy tính và dễ di chuyển. Thống kê cho thấy chương trình python được đóng gói bởi cx_Freeze có thể nhẹ hơn gấp 10 lần so với Pyinstaller.

Tuy nhiên nhẹ cũng là nhược điểm của cx_Freeze, bởi cx_Freeze chỉ có thể đóng gói các chương trình python nhẹ, đơn giản và không sử dụng tới các thư viện của 3rd-parties như NumPy, SciPy, OpenCV, matplotlib, PyQT,… Khi cần đóng gói chương trình python sử dụng tới các thư viện này, bạn cần sử dụng Pyinstaller để thay thế cho cx_Freeze.

Bạn cũng có thể tham khảo thêm về cx_Freeze trên trang web chính thức cx_Freeze’s documentation.

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

Cài đặt cx_Freeze

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

python -m pip install cx_Freeze 

Bạn cũng có thể chỉ định version của cx_Freezee cần cài đặt như sau:

pip install cx-Freeze==6.3

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

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 sử dụng lại chương trình in ra bảng cửu chương trong Python trong bài For in range python và vòng lặp với số lần cụ thể như sau:

num = 1
for i in range(9):
i += 1
print("2 * " + str(i) + " = " + str(2*i))

input_exit = input("nhap exit de thoat:")

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

Tạo file setup.py

Để đóng gói chương trình python bằng cx_Freeze, chúng ta cần tạo ra một file setup.py có tác dụng chuyển file python được chỉ định sang định dạng exe. Tên file này bắt buộc phải là setup.py với nội dung sau đây:

# coding: utf-8
# Đóng gói chương trình python bằng cx_Freeze

import sys
from cx_Freeze import setup, Executable

base = None

# GUI= activate, CUI= not activate
# if sys.platform == 'win32' : base = 'Win32GUI'

# Chỉ định tên file python cần chuyển sang exe
exe = Executable(script = 'test.py',
base = base)

# Set up
setup(name = 'cx_Freeze',
version = '0.1',
description = 'converter',
executables = [exe])

Trong đó, bạn cần chỉ định đối số script trong hàm Executable là tên file python đầy đủ như ví dụ ở trên.

Sau khi lưu file trên với tên setup.py, hãy đặt file này và file test.py đã tạo ở trên trong cùng một thư mục để có thể tiến hành đóng gói file. Ví dụ:

  |data/
  |--test.py
  |--setup.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ạy file setup.py với lệnh sau đây:

python setup.py build

cx_Freeze 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 cx_Freeze

Kiểm tra chương trình python đã được đóng gói

Sau khi tiến hành setup xong, chương trình được đóng gói sẽ nằm trong thư mục build > exe.win-amd64-3.8 như sau:

  |data/
  |--build
  |    |--exe.win-amd64-3.8
  |        |-- lib
  |        |-- python3.dll
  |        |-- python38.dll
  |        |-- test.exe
  |--test.py
  |--setup.py

Và file test.py cũng đã được chuyển sang dạng exe với tên file test.exe như ở trên.

Hãy mở file test.exe và kiểm tra kết quả.
đóng gói chương trình python bằng cx_Freeze

Sau khi đóng gói xong chương trình, bạn có thể đổi tên thư mục exe.win-amd64-3.8 thành tên mình muốn, và sử dụng thư mục này như là một chương trình exe độc lập trong máy tính của mình.

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 cx_Freeze 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.

HOME>> >>

Profile
きよしです!笑

Tá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.