将python编译为一个小的exe文件

将python编译为一个小的exe文件,python,compilation,size,Python,Compilation,Size,我知道python是一种解释器语言,这意味着当您运行它时,它会将脚本转换为机器代码,但有人能向我澄清为什么不能将其预转换为机器代码(编译) 我问这个问题是因为我一直在用GUI使用tkinter制作这些简单的程序,我正在使用pyInstaller创建可执行文件。问题是,有时我得到的这个简单的程序(只有几行代码)有10s的MBs那么大 据我所知,PyInstaller使用脚本将所有库和解释器打包在exe中,这会导致这些大小,但有没有办法使其达到合理的大小?因为我知道C++中的相同程序要小得多(小于M

我知道python是一种解释器语言,这意味着当您运行它时,它会将脚本转换为机器代码,但有人能向我澄清为什么不能将其预转换为机器代码(编译)

我问这个问题是因为我一直在用GUI使用
tkinter
制作这些简单的程序,我正在使用pyInstaller创建可执行文件。问题是,有时我得到的这个简单的程序(只有几行代码)有10s的MBs那么大

据我所知,PyInstaller使用脚本将所有库和解释器打包在
exe
中,这会导致这些大小,但有没有办法使其达到合理的大小?因为我知道C++中的相同程序要小得多(小于MB)。
我不知道C或C++,所以我没有时间去学习它。大小并不是一个大问题,但拥有较小的文件还是不错的。

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

“知道python是解释器语言,它意味着在您运行它时它会将脚本转换为机器代码”不,它绝对不会。CPython将python代码编译成字节码,直接在python解释器上运行。好的,谢谢你纠正我的错误。无论如何,我认为没有办法改变这些大小。基本上,C++程序利用了许多库与系统本身一起出现的事实。pyinstaller必须将其捆绑到一个独立的应用程序中。我相信tkinter也很强大(也许我弄错了),我要试试这个,但是PyInstaller不是只包含了在脚本中导入的库,并且在最终的可执行文件中实际需要这些库吗?