Reputation: 509
I've compiled a Python program with cx_Freeze
. The Python code itself is only 195 lines long. However, my compiled program is 500 MB. I use matplotlib
, numpy
, and pymsgbox
and I don't know if my libraries affect my compiled program size that much.
What is the reason for this unexpected file size and is there a way to reduce the size of my executable?
Upvotes: 5
Views: 1674
Reputation: 12051
Part of the purpose of cx_Freeze is to bundle all the dependencies, so that the end user need not install them. numpy
, matplotlib
, etc. are not small dependencies, especially because they have large binary (non-Python) components. So what you are asking is not physically possible, not because of cx_Freeze limitations, but because of a contradiction between the following two requirements:
You cannot satisfy both these requirements simultaneously. cx_Freeze is appropriate for the first, but not the second. If you can assume your end users already have Python, numpy, matplotlib installed (or can install seperately), and want to distribute your program such that the binary size be small, a wheel is more appropriate.
Upvotes: 5