2013-08-31 28 views
6

Tôi đang sử dụng Pyinstaller để chuyển đổi tập lệnh python thành tệp thực thi, tập lệnh chứa nhiều lần nhập từ nhiều gói khác nhau như nltk, bắt đầu, json và bốn gói khác. Tập tin thực thi kết quả cho một dòng 10 mã là 54MB mà là không thực tế cao, tôi biết nó gói tất cả các mô-đun trong một tập tin duy nhất, nhưng nó làm cho nó quá lớn như kịch bản python chính nó chỉ là 2KB.Một số mẹo chung để giảm kích thước tệp cho Pyinstaller được tạo ra là thực thi

Một số mẹo chung để giảm kích thước tệp ".exe" là gì?

Tôi đang sử dụng lệnh dưới đây để chuyển đổi các tập lệnh

>pyinstaller.py -F -o output check.py 

Tôi đã chỉ nhập khẩu các chức năng cá nhân và không toàn bộ mô-đun, như:

from nltk.metrics.agreement import AnnotationTask 

Các module nhập khẩu có chức năng độc lập và tôi có có chọn lọc chỉ nhập 3-4 chức năng, nhưng điều này dường như không có bất kỳ ảnh hưởng nào đến kích thước tệp exe được tạo, làm tất cả các chức năng lãng phí được nhập vào tệp exe? Làm thế nào để tránh điều này?

Trả lời

2

Bạn đang so sánh hai thứ hoàn toàn khác nhau, tệp exe bạn tạo không chỉ chứa tệp của bạn mà còn chứa trình thông dịch Python và tất cả các mô-đun đã nhập. Nhìn vào python của tôi 2,7 cài đặt dưới cửa sổ tôi thấy rằng nó là 83 MB lớn. ntlk và co có lẽ không phải là thư viện nhỏ nhất hoặc bạn phải bao gồm tất cả chúng trong một cách thực thi hay cách khác. Để so sánh một dự án trung bình nhỏ của tôi tạo ra khoảng 23 MB sử dụng cx_freeze (và bao gồm 10 MB của dll QT4), vì vậy bạn có thể thử điều đó.

Ngoài ra, bạn có thể nén tệp thực thi bằng UPX, như được mô tả here có thể hữu ích.

+0

cfreeze đang gửi một lỗi cho tôi, nhưng nói chung nó xuất ra các tệp kích thước nhỏ hơn so với pyinstaller? – stackit

+0

@Ali Tôi không có ý tưởng, đã không sử dụng pyinstaller trong một thời gian dài bởi vì cx_freeze đã hỗ trợ Python3 đầu tiên, không có lý do sâu sắc hơn. Tôi sẽ thử UPX đầu tiên để xem có bao nhiêu giúp bạn. – Voo

+0

mô-đun có chức năng độc lập và tôi đã chọn lọc chỉ có 3-4 chức năng, nhưng điều này không thay đổi kích thước tệp – stackit

Các vấn đề liên quan