用pyinstaller打包python程序后发现要读取的文件路径不对了,解决方法如下:
if getattr(sys, 'frozen', False):
absPath = os.path.dirname(os.path.abspath(sys.executable))
elif __file__:
absPath = os.path.dirname(os.path.abspath(__file__))
列出该文件夹下的文件
fileList = os.listdir(absPath)
目标文件完整路径
ruleFilePath = os.path.join(absPath,ruleFile)
记录一下pyinstaller打包的方法:
在你想放置应用的文件夹下打开cmd,pyinstaller + 参数 +文件入口或打包定义文档。
参数:
参数 | 含义 |
---|---|
-F | 打包单个文件,生成结果是一个exe文件,如果代码都写在一个.py文件时使用,项目有多个文件时不要使用 |
-i | 指定程序的图标 |
-w | 不显示dos窗口(命令行) |
-c | 显示dos窗口(命令行) |
-h | 显示帮助 |
-v | 显示版本号 |
--key=密码 | 加密打包 |
更换exe程序图标
如果不喜欢默认的图标,想要换成自己喜欢的,那么需要准备后缀为.ico的图片。在网页上就可以在线转图片格式,很方便。
执行命令:pyinstaller -F -i 图片名.ico 文件名.py。(-i表示更换图标)
pyinstaller -F -i D:\target.ico main.py
去掉Dos窗口
如果程序本身就实现了图形界面,运行程序的时候,不希望显示dos窗口,想取消掉就执行-w命令。再重新打包后,就会只显示图形界面,没有dos窗口了
pyinstaller -F -w main.py -i D:\target.ico