Sto cercando di esportare il mio script .py in .exe utilizzando PyInstaller, che ha dipendenze da file .ui creati con Qt Designer.PyInstaller + UI Files - FileNotFoundError: [Errno 2] Nessun file o directory:
Posso confermare che il mio script .py funziona correttamente quando viene eseguito tramite PyCharm - Sono in grado di vedere la GUI che ho creato con i file .ui.
Tuttavia, quando esporto il mio script Py a .exe e lanciarlo, ricevo i seguenti errori nella riga di comando:
C:\Users\giranm>"C:\Users\giranm\PycharmProjects\PyQt Tutorial\dist\secSearch_demo.exe"
Traceback (most recent call last):
File "secSearch_demo.py", line 13, in <module>
File "site-packages\PyQt4\uic\__init__.py", line 208, in loadUiType
File "site-packages\PyQt4\uic\Compiler\compiler.py", line 140, in compileUi
File "site-packages\PyQt4\uic\uiparser.py", line 974, in parse
File "xml\etree\ElementTree.py", line 1186, in parse
File "xml\etree\ElementTree.py", line 587, in parse
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\giranm\\securitySearchForm.ui'
Failed to execute script secSearch_demo
Per qualche ragione, il file .exe cerca la file .ui all'interno del percorso - C: \ Users \ giranm \
Tuttavia, avendo già fatto alcune ricerche, mi è stato detto che dovevo usare os.getcwd() e assicurarmi di avere il percorso completo nel mio script . Anche con il codice qui sotto, ottengo ancora errori nel tentativo di individuare i file .ui.
PyInstaller: IOError: [Errno 2] No such file or directory:
# import relevant modules etc...
cwd = os.getcwd()
securitySearchForm = os.path.join(cwd, "securitySearchForm.ui")
popboxForm = os.path.join(cwd, "popbox.ui")
Ui_MainWindow, QtBaseClass = uic.loadUiType(securitySearchForm)
Ui_PopBox, QtSubClass = uic.loadUiType(popboxForm)
# remainder of code below.
Sono consapevole del fatto che si può convertire i file in .py e importarli nella routine principale utilizzando pyuic4 .ui. Tuttavia, apporterò più modifiche ai file .ui e quindi non è possibile per me continuare a convertirli.
Esiste comunque una soluzione per poter creare un file .exe autonomo?
Sono abbastanza nuovo nell'usare PyQT4 e PyInstaller - qualsiasi aiuto sarebbe molto apprezzato!