从Python脚本创建可执行文件,同时获取较小的输出大小

问题描述 投票:4回答:1

我的问题可能已经在某个地方回答了,但仍然无法找到一个简单的答案。我想从python代码创建一个独立的可执行文件。我已经尝试了很多解决方案,例如py2exepyinstaller等。但是我的问题是输出文件很大。例如,在pyinstaller中,一个简单的hello world编译为5MB文件。经过大量搜索后,我发现Cython从python代码创建了一个c文件,然后我尝试用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
python cython pyinstaller py2exe
1个回答
5
投票

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

编辑:

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

Python: Excluding Modules Pyinstaller

© www.soinside.com 2019 - 2024. All rights reserved.