đóng gói phần mềm Nuitka
"%AppData%\..\Local\Programs\Python\Python311\python.exe" -m nuitka --standalone --onefile --windows-disable-console --include-data-dir=templates=templates main.py đóng gói file main.py tại đường dẫn cụ thể của bạn, hãy mở Command Prompt (CMD) và chạy các lệnh dưới đây.
Tôi sẽ sử dụng đường dẫn tuyệt đối của Python 3.11 (dựa trên các câu trả lời trước của bạn) để đảm bảo không bị lỗi phiên bản.
Bước 1: Di chuyển vào thư mục dự án
Bạn cần cd vào thư mục chứa code để Nuitka nhận diện đúng các file liên quan (như thư mục templates).
cd /d C:\Users\Administrator\AppData\Local\Programs\Python\1-project_IEC104\read_IEC104
Bước 2: Chạy lệnh đóng gói Nuitka
Lệnh này sẽ gom tất cả code, thư viện IEC104 (như pyprotocols hoặc ihit104 nếu bạn dùng) và thư mục templates vào một file duy nhất.
"%AppData%\..\Local\Programs\Python\Python311\python.exe" -m nuitka --standalone --onefile --windows-disable-console --include-data-dir=templates=templates --assume-yes-for-downloads main.py
Giải thích các tham số áp dụng cho dự án IEC104 của bạn:
--standalone&--onefile: Tạo ra một file.exeduy nhất nặng tầm 30-50MB nhưng có thể copy sang máy tính khác (máy trạm OCC hoặc máy tính tại trạm biến áp) chạy ngay mà không cần cài Python.--windows-disable-console: Vì đây là dự án đọc dữ liệu (có thể bạn có giao diện theo dõi hoặc chạy ngầm), tham số này giúp ẩn cái bảng đen CMD khi bật app.Lưu ý: Nếu bạn đang trong quá trình debug lỗi kết nối IEC104, hãy bỏ tham số này để xem log.
--include-data-dir=templates=templates: Rất quan trọng nếu project của bạn dùng các file cấu hình hoặc giao diện web/jinja trong thư mụctemplates.
Kết quả sau khi chạy:
Nuitka sẽ tạo ra một thư mục tên là
main.disthoặcmain.build(có thể xóa sau khi xong).File cuối cùng sẽ nằm ngay tại thư mục hiện hành với tên:
main.exe.
Một số lưu ý nhỏ cho dân kỹ thuật:
Kết nối mạng: Lần đầu chạy, Nuitka sẽ tải một số công cụ biên dịch (MinGW64). Bạn hãy đảm bảo máy tính có internet.
Quyền Admin: Bạn đang ở
C:\Users\Administrator, hãy đảm bảo CMD được mở bằng quyền Run as Administrator để tránh lỗi ghi file.Tên file: Nếu bạn muốn đặt tên file là
IEC104_Collector.exe, hãy thêm tham số-o IEC104_Collector.exevào cuối lệnh.
Nếu trong lúc biên dịch bị báo thiếu thư viện (ví dụ: OrderedDict hay các module liên quan đến giao thức IEC), hãy cho tôi biết tên lỗi cụ thể nhé!

