gpt4 book ai didi

使用 Inno Setup 安装时,Python/Qt/SQLite3 应用程序不运行

转载 作者:行者123 更新时间:2023-11-28 05:44:08 38 4
gpt4 key购买 nike

我有一个 Qt 程序。所以我使用 windeployqt.exe 创建了版本。 --quick 它有一个 SQLite3 数据库,一些我用 Python 编译的模块,一个带有用户指南的帮助文件夹......它看起来像这样:

Folder view现在,如果我直接从这里运行 pymepos.exe,一切正常。数据库是干净的,Python 模块被成功调用和执行。如果我使用 Inno Setup 为这个文件创建一个安装程序,在安装我自己的程序后,我注意到我有一些以前在数据库中的旧东西。此外,它根本不运行我的 Python 模块。我在这里盲目行走,因为我不知道发生了什么(我没有任何日志文件或任何东西),如果我单独检查我的模块,它们似乎工作正常,但主 Qt 程序无法运行它们.

所以此时我重新安装了 Inno Setup(认为它可能在某处有缓存),将我的发布文件移到其他地方,将文件重新添加到 .iss。编译什么也没有,同样的事情。

此外,我确实注意到以管理员身份运行安装的 pymepos.exe 它将使用它应该使用的干净数据库,但模块似乎仍然无法工作。有任何想法吗?

这是我的 .iss 文件:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{0BA2A484-5F5E-49F5-94AC-5C7410C70B30}
AppName=PYMEPOS
AppVersion=1.0.5
;AppVerName=PYMEPOS 1.0.5
AppPublisher=Cubix Softworks
DefaultDirName={pf}\Cubix506/PYMEPOS
DisableProgramGroupPage=yes
OutputDir=F:\installer_leon
SetupIconFile=D:\Proyectos\QT\PymePOS\project\res\icon.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "F:\release_leon\pymepos.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\D3Dcompiler_47.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libEGL.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libgcc_s_dw2-1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libGLESV2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libstdc++-6.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libwinpthread-1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\opengl32sw.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Network.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Qml.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Quick.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Sql.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Svg.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Xml.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\db\*"; DestDir: "{app}\db"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\help\*"; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\modules\*"; DestDir: "{app}\modules"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\qmltooling\*"; DestDir: "{app}\qmltooling"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\sqldrivers\*"; DestDir: "{app}\sqldrivers"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\translations\*"; DestDir: "{app}\translations"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\PYMEPOS"; Filename: "{app}\pymepos.exe"
Name: "{commondesktop}\PYMEPOS"; Filename: "{app}\pymepos.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\pymepos.exe"; Description: "{cm:LaunchProgram,PYMEPOS}"; Flags: nowait postinstall skipifsilent

最佳答案

这是一个非常模糊的问题。但是给你一些可能性:

  • 您的应用程序未设计为从文件名中包含空格的路径运行(Program Files)
  • 您的应用程序需要对其安装文件夹的写入权限。当从 Program Files 运行时,它没有什么。当以管理员身份运行应用程序时,您遇到的问题较少,这表明这是(其中一个)问题。

为了测试,尝试将应用程序安装到 C:\PYMEPOS


Ntb,Inno Setup 不缓存任何文件。重新安装 Inno Setup 不会解决任何问题。我认为您的问题实际上与 Inno Setup 没有任何关系。


另见 Application does not work when installed with Inno Setup .

关于使用 Inno Setup 安装时,Python/Qt/SQLite3 应用程序不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567388/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com