windows下pyinstaller打包踩坑记录

Posted summerio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下pyinstaller打包踩坑记录相关的知识,希望对你有一定的参考价值。

示例:

 

需要打包的是 ReadConfig.py 文件,同文件夹下调用了Interface.py文件,ui文件夹下调用了 Ui_config.py和Ui_Error.py文件,Interface.py又调用了fileread文件夹中的文件

不要将入口程序写在__init__.py文件中,否则打包可以成功,但是无法运行,cmd运行也不报错,具体原因未知

技术图片

 

 技术图片

 

在文件夹处打开cmd,输入:

pyinstaller $IncludePath$ $FileName$ 
  • IncludePath:所有需要引用py的文件夹 -p ‘‘文件夹1" -p "文件夹2" ......

    英文双引号最好加上(可以将文件夹直接拖入cmd窗口中),不然程序路径中出现空格时会出现问题,也不要使用 -p path0:path1:path2... 有时也会出现问题

  • FileName: 程序入口文件

示例的命令如下:

pyinstaller -p "F:CODEpythoneric6_workspaceReadConfigui" -p "F:CODEpythoneric6_workspaceReadConfigfileread" ReadConfig.py

如果打包成功会在dist子文件夹中出现可执行文件

技术图片

 

 技术图片

 

如果能够成功运行,则表明成功,但此时的程序会出现后台控制窗口,如果要去掉可以加上参数 “--noconsole”,打包前最好清理build和dist文件夹,不然可能会无效

pyinstaller -p "F:CODEpythoneric6_workspaceReadConfigui" -p "F:CODEpythoneric6_workspaceReadConfigfileread" ReadConfig.py --noconsole

如果想打包成一个exe可以 -p 前添加 -F参数,打包前同样最好清理以下

pyinstaller -F -p "F:CODEpythoneric6_workspaceReadConfigui" -p "F:CODEpythoneric6_workspaceReadConfigfileread" ReadConfig.py --noconsole

 

 其它参数可以参考:

https://pyinstaller.readthedocs.io/en/stable/usage.html#options

运行失败

如果程序运行时一闪而过,或者出现failed to execute script,打开一个cmd窗口,将程序拖入cmd中按Enter运行,例如本文去掉第二个路径,会报以下错误:

技术图片

 

 这时候把需要的模块路径在打包参数中添加就好了,其他问题还没碰到,欢迎探讨

 

以上是关于windows下pyinstaller打包踩坑记录的主要内容,如果未能解决你的问题,请参考以下文章

Python3中采用PyInstaller打包工程项目

Python3中采用PyInstaller打包工程项目

pyinstaller打包Django项目

Python使用pyinstaller打包踩坑合集

Python使用pyinstaller打包踩坑合集

Python使用pyinstaller打包踩坑合集