【发布时间】:2020-11-29 00:29:38
【问题描述】:
我知道 python 是解释器语言,这意味着当你运行它时它会将脚本转换为机器代码,但是有人可以向我解释一下为什么不能将它预先转换为机器代码(编译)。
我问这个是因为我一直在使用tkinter 使用 GUI 制作这些简单的程序,并且我正在使用 pyInstaller 创建可执行文件。问题是有时我得到这个简单的程序(只有几行代码)只有 10 兆字节。
据我了解,PyInstaller 将所有库和解释器与exe 中的脚本打包在一起,这会产生这些大小,但是有没有办法可以让这个大小变得有点合理?因为我知道用 C++ 制作的相同程序要小得多(小于 MB)。
我不知道任何 C 或 C++,所以我没有时间学习它,所以这不是一个选择。大小确实不是太大问题,但文件更小还是不错的。
【问题讨论】:
-
" 知道 python 是解释器语言,这意味着当您运行它时它会将脚本转换为机器代码" 不,绝对不会。 CPython将python代码编译成bytecode,直接在python解释器上运行。
-
好的,谢谢你的指正。
-
无论如何,我认为这些尺寸是没有办法的。基本上,C++ 程序利用了许多库随系统本身提供的事实。 pyinstaller 必须将它全部捆绑成一个独立的。 tkinter,我相信,也相当大(也许我错了)
标签: python compilation size