1、安装pyinstaller
pip install pyinstaller
或:
在Pycharm界面的最下面,你可以看到Terminal,选择这个选项,这就是一个终端界面。
在此界面写输入指令: pip install pyinstaller 对pyinstaller进行下载。
2、编译
pyinstaller -F -w game.py (-F表示打包单个文件,-w是为了打开exe时候不弹出黑框)
在终端里输入的指令为: pyinstaller -w -F XXX.py
但是对于初学者来说,这里要解释的东西很多:
-w:表示希望在生成的.exe程序运行过程中,不要出现cmd黑框(就是图中的黑框)(注意:小写!)
-F:表示希望将所有的程序全部打包在一起,生成的只有一个.exe文件,这样的文件集成度高,但是运行速度慢;如果不写-F,生成的还有一堆.dll文件,这样的程序里文件很多,但是运行速度比较快,这也是我们平时使用的程序的样式(如图)(注意:大写!)
XXX.py:指的是你整个项目的入口程序,大家写项目时很可能是多文件编程,你整个项目时靠哪个文件作为入口拉起来的,就填那个文件的名字。
3、设置exe的图标
pyinstaller -F -w -i bitbug_favicon.ico game.py (-i用来设置编译成exe文件的图标,后面跟.ico格式的图片文件)
等待生成完毕后,回到源文件目录,在dist目录下,找到生成的exe文件,即可完成Python生成exe文件操作。
4、问题汇总
打包成目录
pyinstaller -D main.py
打包成文件夹就不会报错了
打包成单个文件
pyinstaller -F main.py
-
使用参数-D
""" 加上-D的打包可以理解为是打包的第一种方式,和上面是一样的效果,因为-D是属于默认的。 此时打包完成后,在main.py的路径下会又一个dist文件夹,dist文件夹下是一个main文件夹, 再往里面打开,就会像我们大多数windows软件一样,有一个目录专门放 一堆运行时所需要的依赖文件等等,但一定有一个main.exe文件用于运行。 """ pyinstaller -D main.py
-
使用参数-F
""" 加上-F可以理解是打包的第二种方式,与-D不能同时使用。 打包完成后,在main.py路径下同样会有一个dist文件夹,但不同的是, dist文件夹下只有一个main.exe的可运行文件。 """ pyinstaller -F main.py
-
使用参数-w
""" 无论是使用-F 还是 -D参数,打包出来的exe文件在运行的时候都会自动打开一个cmd窗口, 如果我们想让他关闭而不影响程序运行的话,需要在打包时再加上-w参数。 无论是-F 还是-D都支持和-w参数配合使用,以此来关闭运行时打开的cmd窗口。 """ pyinstaller -F -w main.py
或者
pyinstaller -D -w main.py