【问题标题】:Compiling python to a small exe file将python编译成一个小的exe文件
【发布时间】: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


【解决方案1】:

检查您使用的虚拟环境是否没有您不需要的站点包。通常是这些包很大。创建一个新的 venv 并只安装您需要的库并尝试。

【讨论】:

  • 我要试试这个,但是 PyInstaller 不是只包含在脚本中导入并且最终可执行文件中实际需要的库吗?
猜你喜欢
  • 2017-12-25
  • 2011-12-14
  • 1970-01-01
  • 2017-12-24
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多