windows下pyinstaller打包踩坑记录

示例:

 

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

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

windows下pyinstaller打包踩坑记录

 

 windows下pyinstaller打包踩坑记录

 

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

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

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

  • FileName: 程序入口文件

示例的命令如下:

pyinstaller -p "F:\CODE\python\eric6_workspace\ReadConfig\ui" -p "F:\CODE\python\eric6_workspace\ReadConfig\fileread" ReadConfig.py

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

windows下pyinstaller打包踩坑记录

 

 windows下pyinstaller打包踩坑记录

 

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

pyinstaller -p "F:\CODE\python\eric6_workspace\ReadConfig\ui" -p "F:\CODE\python\eric6_workspace\ReadConfig\fileread" ReadConfig.py --noconsole

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

pyinstaller -F -p "F:\CODE\python\eric6_workspace\ReadConfig\ui" -p "F:\CODE\python\eric6_workspace\ReadConfig\fileread" ReadConfig.py --noconsole

 

 其它参数可以参考:

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

运行失败

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

windows下pyinstaller打包踩坑记录

 

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

 

windows下pyinstaller打包踩坑记录

上一篇:Windows远程命令执行(Schtask方法)


下一篇:Win 10 没有 Hyper-V 解决方案