PyInstaller exe只在从cmd运行时才起作用

我试图打包一个Python工具,我写入到一个exe文件在Windows 10上使用。据我所知,该exe文件构build正确。 它加载和一切工作,如果我从命令行运行它。

但是,如果我尝试从资源pipe理器(双击图标)运行该工具,我得到一个“无法执行脚本”错误。 我已经尝试使用–debug开关构build它,希望能够在cmdclosures之前快速捕获任何输出,但速度太快了。

我用来构build该工具的行是:

pyinstaller.exe --onefile --debug --console --icon=C:\Users\Ross\Desktop\gtt\assets\icon.ico --hidden-import xlrd gtt.py 

在我开始使用reportlab模块之前,它工作完美:

 from reportlab.lib import colors from reportlab.lib.enums import TA_CENTER from reportlab.lib.pagesizes import letter, portrait from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import inch from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer 

当我使用debugging开关运行命令行时,命令行绝对没有关于错误的输出: 显示工具在cmd中运行的屏幕截图

我已经尝试了以下,没有任何工作。

  • –noupx
  • –onedir
  • –onefile

总而言之,为什么PyInstaller的exe文件在命令行中运行,而不是从Windows GUI运行呢?

编辑:这个问题似乎与PyQt4。 我回到了从tkinter切换到Qt的提交,并且问题仍然存在。 以前的版本,与tkinter,从GUI加载罚款。

我想到了!

我不得不将gui.ui文件转换成一个包。

  1. 我创建了包含一个空的__init__.py的包“gui”
  2. 我运行pyuic4 gui.ui -o gui.py将gui.ui代码转换成Python
  3. 我把gui.ui和gui.py文件都移到了gui目录下
  4. 在我的主程序代码中,我导入了模块: from gui.gui import *

希望帮助其他人!