当前位置: 首页 > 知识库问答 >
问题:

PyInstaller exe仅在从cmd运行时工作

闻人宏盛
2023-03-14

我正试图将我写的一个python工具打包到一个exe文件中,以便在Windows10上使用。据我所知,exe是正确构建的。如果我从命令行运行它,它就会加载并且一切正常。

但是,如果我试图从资源管理器运行该工具(双击图标),我会得到一个“执行脚本失败”的错误。我尝试使用--debug开关构建它,希望在cmd关闭之前可以快速捕获任何输出,但速度太快了。

我用来构建工具的代码行是:

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

我试过以下方法,但没有任何效果。

    null

编辑:问题似乎与PYQT4有关。我回到了一个提交,从tkinter切换到Qt,问题仍然存在。上一个构建使用tkinter,从GUI加载很好。

共有1个答案

乌灿
2023-03-14

我想通了!

我必须将gui.ui文件转换成一个包。

  1. 我创建了包“GUI”,其中包含一个空的__init__.py
  2. 我运行pyuic4 gui.ui-o gui.py将gui.ui代码转换为Python
  3. 我将gui.ui和gui.py文件都移动到gui目录中
  4. 在我的主程序代码中,我从gui.gui import导入了模块:
 类似资料:
  • 问题内容: 我是编程(和Python)新手。我无法在WinXP 64位笔记本电脑的命令提示符下运行任何python脚本。我分配了路径并通过输入set path确认了。我有Python32。我收到以下消息: 以下是我尝试的脚本: 问题答案: 你应该输入这个 在dos / cmd提示符下,而不是在Python解释器中

  • 我有一个多线程程序,可以导入JSON,我想通过CMD运行它,但现在我不能,因为它说它没有导入。 如何解决这个问题,以便我可以始终在CMD上运行程序,而无需在运行时进行额外的键入;即,只是javacprogram.java和javaprogram.java

  • 我想一个接一个地从java代码中成功地运行多个cmd命令。 我想使用这个创建ssh连接的命令行应用程序,我想像在正常的命令提示符窗口中一样连续运行多个命令,而不需要实际关闭会话。我在java中找到的关于运行cmd命令的大多数答案都谈到了运行单个命令然后停止。就像这个问题的答案: 通过java运行cmd命令 我需要将命令的输出重定向到控制台,并从控制台获取新命令作为输入。有点像用java代码模拟cm

  • 我刚开始使用springboot和springboot 2版本。 但是,当我使用eclipse构建应用程序时,它直接调用myService.getMyMethod()而不构建JAR。 我想首先构建jar文件,然后从命令提示符运行java-jar my-app-0.0.1-snapshot.jar,这将调用MyService.getMyMethod() 我在pom.xml中已经有了spring-bo

  • 所以我昨天从Gulp4.0开始,所以当我开始gulp时,他只在第一次运行时将我的sass编译成css。为什么这是我的 [22:36:57]正在启动“监视任务”...