将python编译为小尺寸的exe

时间:2017-07-24 05:11:57

标签: python cython pyinstaller py2exe

我的问题可能已经在某个地方得到了回答,但我仍然无法找到一个直截了当的答案。 我想从python代码创建一个独立的可执行文件。我已经尝试了很多解决方案,例如py2exepyinstaller等。但我的问题是输出文件的大小。例如,在pyinstaller中,一个简单的hello world编译为5MB文件。经过大量搜索,我发现Cython从python代码创建了ac文件,然后我尝试用MSVC 2015编译它并生成exe文件,但它依赖于python3x.dll文件

那么有没有办法将python代码编译成独立的小文件exe文件?

如果不是,如何将可执行文件与msvc捆绑在一起?

我使用python3.4但是python2和3之间有什么区别吗? 我使用这些命令首先生成c文件,然后将其编译为exe:

python -m cython test.py --embed
cl  /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python34\include -Ic:\Python34\PC /Tctest.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X64 /LIBPATH:c:\Python34\libs /LIBPATH:c:\Python34\PCbuild

1 个答案:

答案 0 :(得分:4)

据我所知,可执行文件的大小相当大,导致pyinstaller链接到一个库的 ALL 依赖项。因此,如果您使用大型库,例如Matplotlib您将获得大小约为150MB的可执行文件。 在使用pyinstaller大约两个月之后,至少这是我的观点。我还没有尝试的一件事是玩“排除”选项。我在某处读过,如果排除特定模块,可以减小文件的大小。不幸的是我找不到我读它的来源了。

编辑:

我知道已经有一段时间但我设法通过排除某些文件来减少可执行文件的大小。这样我就可以将大小为208MB的可执行文件减少到70.3MB。我只是按照这里的例子

Python: Excluding Modules Pyinstaller