đóng gói phần mềm ra .exe nhưng để chạy máy khác thi đóng gói phần mềm
- Sao chép liên kết
- Chia sẻ với Facebook
- Chia sẻ với X
- Chia sẻ với Pinterest
- Chia sẻ với Linkedin
- Gửi bài qua Email
gửi email cho tác giả
xem trong video này khi đóng gói python thì phải copy thêm file .dll thì mới chạy được ak https://www.youtube.com/watch?v=qRidx98f6eE
Đúng rồi. Nhiều trường hợp khi đóng gói Python thành .exe bằng PyInstaller thì phải copy thêm file .dll thì chương trình mới chạy được trên máy khác.
Nguyên nhân là:
- Python package của bạn dùng thư viện native C/C++ (
.dll) - PyInstaller không tự phát hiện hết dependency
- Máy khác thiếu runtime hoặc thiếu DLL đi kèm
- Một số thư viện load DLL động nên PyInstaller bỏ sót
Ví dụ rất hay gặp:
PyQt5/PySide6→ thiếuQt5Core.dll,Qt5Svg.dllopencv-python→ thiếu DLL OpenCVnumpy/scipy→ thiếu MKL DLLsnap7,pymodbus,tensorflow→ hay thiếu DLLpsycopg2PostgreSQL → thiếu libpq.dllsqlite,ODBC,Kepware, OPC → thiếu runtime DLL
Trong video bạn xem họ copy DLL thủ công là kiểu xử lý phổ biến.
Cách đúng và chuyên nghiệp hơn là khai báo luôn khi build:
pyinstaller --onefile main.py --add-binary "abc.dll;."
Hoặc trong file .spec:
binaries=[('abc.dll', '.')]
PyInstaller có hỗ trợ chính thức việc thêm DLL như vậy.
Ngoài DLL còn có thể thiếu:
- folder
plugins - file
.json .ini- ảnh
- SVG
- font
- SSL cert
Nên đôi khi phải dùng:
--add-data
Ví dụ:
pyinstaller main.py ^
--onefile ^
--add-data "config.json;." ^
--add-binary "libpq.dll;."
Ngoài ra còn có 2 kiểu đóng gói:
1. onefile (--onefile)
Ra 1 file .exe
Ưu:
- Gọn
- Dễ gửi khách
Nhược:
- Hay lỗi DLL hơn
- Khởi động chậm hơn
- Antivirus dễ nghi ngờ
2. onedir (khuyên dùng khi phát triển)
pyinstaller main.py
Ra nguyên folder:
dist/
app.exe
python311.dll
Qt5Core.dll
...
Ưu:
- Ít lỗi hơn
- Dễ debug
- DLL tự nằm cạnh exe
Nhược:
- Nhiều file
Nếu mục tiêu của bạn là:
“bảo vệ code”
thì nên:
- build bằng PyInstaller
- dùng
--onefile - thêm UPX nén
- obfuscate bằng:
- Nuitka
- PyArmor
- Cython
Vì PyInstaller thực ra vẫn extract được source .pyc.
Nếu muốn, tôi có thể chỉ bạn luôn:
- cách build
.exechuyên nghiệp cho Windows - chống bị decompile
- giảm false virus
- đóng gói icon
- ẩn console
- full screen app
- build cho phần mềm ThingsBoard/SCADA của bạn.

