pyinstaller failed to execute script

0

Witam
Mam problem z zbudowaniem pliku exe z mojego programu. Buduję program wydając komendę :
pyinstaller --onefile --windowed main.py

Logi:

46 INFO: PyInstaller: 4.0.dev0+9dd34bdfba
46 INFO: Python: 3.8.0
46 INFO: Platform: Windows-10-10.0.17763-SP0
46 INFO: wrote C:\Users\dpalus\Documents\Projekty\Start\main.spec
46 INFO: UPX is not available.
62 INFO: Extending PYTHONPATH with paths
['C:\\Users\\dpalus\\Documents\\Projekty\\Start',
 'C:\\Users\\dpalus\\Documents\\Projekty\\Start']
62 INFO: checking Analysis
62 INFO: Building Analysis because Analysis-00.toc is non existent
62 INFO: Initializing module dependency graph...
62 INFO: Caching module graph hooks...
68 INFO: Analyzing base_library.zip ...
3339 INFO: Caching module dependency graph...
3430 INFO: running Analysis Analysis-00.toc
3430 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by c:\program files\python38\python.exe
3501 INFO: Analyzing C:\Users\dpalus\Documents\Projekty\Start\main.py
3509 INFO: Processing module hooks...
3509 INFO: Loading module hook "hook-encodings.py"...
3581 INFO: Loading module hook "hook-pydoc.py"...
3581 INFO: Loading module hook "hook-PyQt5.py"...
3681 WARNING: Hidden import "sip" not found!
3681 INFO: Loading module hook "hook-PyQt5.QtCore.py"...
3750 INFO: Loading module hook "hook-PyQt5.QtGui.py"...
3851 INFO: Loading module hook "hook-PyQt5.QtWidgets.py"...
4032 INFO: Loading module hook "hook-xml.py"...
4226 INFO: Looking for ctypes DLLs
4234 INFO: Analyzing run-time hooks ...
4234 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
4234 INFO: Including run-time hook 'pyi_rth_pyqt5.py'
4244 INFO: Looking for dynamic libraries
5126 INFO: Looking for eggs
5126 INFO: Using Python library c:\program files\python38\python38.dll
5134 INFO: Found binding redirects:
[]
5134 INFO: Warnings written to C:\Users\dpalus\Documents\Projekty\Start\build\main\warn-main.txt
5175 INFO: Graph cross-reference written to C:\Users\dpalus\Documents\Projekty\Start\build\main\xref-main.html
5175 INFO: checking PYZ
5175 INFO: Building PYZ because PYZ-00.toc is non existent
5175 INFO: Building PYZ (ZlibArchive) C:\Users\dpalus\Documents\Projekty\Start\build\main\PYZ-00.pyz
5790 INFO: Building PYZ (ZlibArchive) C:\Users\dpalus\Documents\Projekty\Start\build\main\PYZ-00.pyz completed successfully.
5792 INFO: checking PKG
5792 INFO: Building PKG because PKG-00.toc is non existent
5792 INFO: Building PKG (CArchive) PKG-00.pkg
16449 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
16464 INFO: Bootloader c:\program files\python38\lib\site-packages\PyInstaller\bootloader\Windows-64bit\runw.exe
16464 INFO: checking EXE
16464 INFO: Building EXE because EXE-00.toc is non existent
16464 INFO: Building EXE from EXE-00.toc
16464 INFO: Appending archive to EXE C:\Users\dpalus\Documents\Projekty\Start\dist\main.exe
16603 INFO: Building EXE from EXE-00.toc completed successfully.

Gdy chcę uruchomić program za pomocą exe dostaje komunikat failed to execute script main. Zawsze ta komenda działała do czasu gdy dostałem nowego laptopa i musiałem na nowo po instalować wszystkie rzeczy. Czy jest jakiś sposób by plik exe budował się prawidłowo ? Dodam że aplikacja jest okienkowa pisana w Pyqt5.

1

Najprawdopodobniej pyinstaller nie dodaje automatycznie jakiegoś modułu, więc zbuduj exe z opcją console=True, odpal z poziomu cmd, zobacz na czym wywala ImportError, dodaj ten moduł w hidden_imports w pliku .spec, albo z linii komend --hidden-import=<nazwa_modułu>.

Poza tym jak projekt masz w pyqt5, to pewnie są jakieś inne wymagania. Np. w kivy trzeba dodać customowe hooki udostępniane z kivy do .spec.

0

Wtedy dostaję taki wynik:

Traceback (most recent call last):
  File "main.py", line 96, in <module>
  File "main.py", line 14, in __init__
  File "main.py", line 17, in initUI
  File "main.py", line 72, in config_read
  File "configparser.py", line 781, in get
  File "configparser.py", line 1149, in _unify_values
configparser.NoSectionError: No section: 'PATH'
[3692] Failed to execute script main

Sekcja PATH odnosi się do mojego pliku ini. Zmieniałem nazwę i dalej to samo. Wczytuję to tak:

config = ConfigParser()
        config.read('config.ini')
        configfile.append(config.get('PATH', 'csm'))
        configfile.append(config.get('PATH', 'europos'))
        configfile.append(config.get('EXE_NAME', 'euro_exe'))
        configfile.append(config.get('EXE_NAME', 'cs_exe'))
0

Zidentyfikowałem problem lecz nie wiem jak go rozwiązać. Problem tkwi w wczytywaniu pliku ini. Pozbyłem się tej funkcji z programu i wszytko prawidłowo się po kompilacji uruchomiło. Jak prawidłowo skompilować program w funkcją wczytywania plików ini ??
Kompiluję to w taki sposób:

pyinstaller -y -F --add-data "config.ini";"." main.py
0

Problem rozwiązany podczas kompilacji należało wpisać ./config.ini. Tutaj tkwił problem

Dziękuję serdecznie za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1