在使用pyinstaller进行python项目打包过程中遇到的问题及解决方法
1.基本命令
pyinstaller --hidden-import=pkg_resources --add-data resources;resources --add-data zx;zx -F -w -i D:/woailuo.ico main.py -p mineblock.py -p pic_lunbo.py
–hidden-import=pkg_resources 不太清楚什么意思
–add-data resources;resources表示将项目使用到的资源(图片、视频等)一并打包进来,并且是将当前路径下的resources文件夹打包进来依然作为resources使用,该命令可以多次使用,添加多个资源文件夹(也可以只添加单一文件)
-F 表示打包后只生成一个exe文件,若不指定该参数,将会最终生成一个文件夹(其中包含一个exe文件)
-w 表示打包后的exe文件运行时,不显示命令窗口,在调试阶段一般不指定该参数,因为可以通过命令窗口看error的情况,当把问题解决后,再指定该参数。
-i D:/woailuo.ico 指定exe文件的图标,注意一定是ico格式的文件
main.py -p mineblock.py -p pic_lunbo.py 将入口文件放在最开始,-p后跟的是入口文件引用到的其他文件,可以多次使用该命令添加多个文件
2. 项目中的资源路径问题
当打包后的可执行文件要在其他电脑上使用时,要注意引用资源时不能使用绝对路径或者相对路径,二者均无法在打包后的程序中被识别,解决方法是使用系统路径,该路径已被封装在如下函数中,直接将相对路径传入使用即可。
def get_resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)
希望大家能有所收获,也希望我能变得更成熟。