• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [PYINSTALLER] Konwersja aplikacji PyQt5 na plik .exe

Hosting forpsi easy 1 pln
+1 głos
271 wizyt
pytanie zadane 6 maja 2022 w Python przez Marak123 Stary wyjadacz (11,150 p.)
zamknięte 11 maja 2022 przez Marak123

Witam smiley

Napisałem aplikację okienkową za pomocą PyQt5 i chcę aby to był jeden plik który odpalasz i masz aplikacji a nie żeby trzeba było kompilować itp. ale tutaj pojawia się problem ponieważ używam pyinstaller-a do stworzenia pliku .exe z tej aplikacji ale wyskakuje mi kod błędu "3221225477" nie wiem czemu.

Postanowiłem to sprawdzić pisząc inną prostą aplikacje w PyQt5 jeden plik .py to jest kod:

from PyQt5 import QtCore, QtGui, QtWidgets
import sys

class window(QtWidgets.QWidget, QtCore.QObject):
    def __init__(self, parent=None):
        super(window, self).__init__(parent)
        self.resize(500,600)
        self.setWindowTitle("Base APP")

        self.button = QtWidgets.QPushButton("Click me!")
        self.button.clicked.connect(self.on_click)

        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.button)
        self.setLayout(self.layout)

        self.label = QtWidgets.QLabel(self)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setStyleSheet("QLabel { background-color : #A0A0A0; color : #FFFFFF; font-size : 30px; }")
        self.label.setText("Hello World!")
        self.label.setGeometry(0, 0, 500, 100)
        self.label.show()

    def on_click(self):
        print("Clicked!")


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = window()
    window.show()
    sys.exit(app.exec_())

i normalnie się odpala gdy to robię komendą:

python ./main.py

ale gdy to skonwertuje na plik .exe to już się nie odpala i wyskakuje ten sam kod błędu i tylko to i nic poza tym. Kombinowałem na różne sposoby zmieniając kod itp. ale nic nie działa a w internecie nic sensownego co może pomoc nie znalazłem.

Wie ktoś dlaczego tak może być, jak to naprawić albo coś??

komentarz zamknięcia: Problem rozwiązanych
komentarz 8 maja 2022 przez VBService Ekspert (246,010 p.)

Spróbuj uruchomić pyinstaller z takimi parametrami

pyinstaller --onefile --log-level=DEBUG MojSkrypt.pyw

lub

pyinstaller --log-level=DEBUG MojSkrypt.pyw 2> build.txt

 

może uda się w ten sposób sprawdzić dokładniej, co jest przyczyną błędu po kompilacji do exe.

komentarz 8 maja 2022 przez Marak123 Stary wyjadacz (11,150 p.)

Ogólnie to w pliku build/warn-main.txt jest napisane ze brakuje modułów tylko nie wiem dlaczego brakuje jeżeli wszystko się odpala normalnie kompilując kod pythonem:


This file lists modules PyInstaller was not able to find. This does not
necessarily mean this module is required for running your program. Python and
Python 3rd-party packages include a lot of conditional or optional modules. For
example the module 'ntpath' only exists on Windows, whereas the module
'posixpath' only exists on Posix systems.

Types if import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement

IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
            tracking down the missing module yourself. Thanks!

missing module named _posixsubprocess - imported by subprocess (optional), multiprocessing.util (delayed)
missing module named grp - imported by shutil (optional), tarfile (optional), subprocess (optional), pathlib (delayed, optional)
missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), subprocess (optional), pathlib (delayed, conditional, optional), http.server (delayed, optional), webbrowser (delayed), netrc (delayed, conditional), getpass (delayed), distutils.util (delayed, conditional, optional)
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
missing module named pep517 - imported by importlib.metadata (delayed)
missing module named _posixshmem - imported by multiprocessing.resource_tracker (conditional), multiprocessing.shared_memory (conditional)
missing module named multiprocessing.set_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
missing module named multiprocessing.get_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
missing module named multiprocessing.get_context - imported by multiprocessing (top-level), multiprocessing.pool (top-level), multiprocessing.managers (top-level), multiprocessing.sharedctypes (top-level)
missing module named multiprocessing.TimeoutError - imported by multiprocessing (top-level), multiprocessing.pool (top-level)
missing module named _scproxy - imported by urllib.request (conditional)
missing module named termios - imported by tty (top-level), getpass (optional)
missing module named 'org.python' - imported by copy (optional), xml.sax (delayed, conditional)
missing module named 'java.lang' - imported by platform (delayed, optional), xml.sax._exceptions (conditional)
missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
missing module named multiprocessing.AuthenticationError - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
missing module named asyncio.DefaultEventLoopPolicy - imported by asyncio (delayed, conditional), asyncio.events (delayed, conditional)
missing module named vms_lib - imported by platform (delayed, optional)
missing module named java - imported by platform (delayed)
missing module named _winreg - imported by platform (delayed, optional)
missing module named console - imported by pyreadline.console.ansi (conditional)
missing module named startup - imported by pyreadline.keysyms.common (conditional), pyreadline.keysyms.keysyms (conditional)
missing module named sets - imported by pyreadline.keysyms.common (optional)
missing module named System - imported by pyreadline.clipboard.ironpython_clipboard (top-level), pyreadline.keysyms.ironpython_keysyms (top-level), pyreadline.console.ironpython_console (top-level), pyreadline.rlmain (conditional)
missing module named StringIO - imported by pyreadline.py3k_compat (conditional)
missing module named IronPythonConsole - imported by pyreadline.console.ironpython_console (top-level)
missing module named clr - imported by pyreadline.clipboard.ironpython_clipboard (top-level), pyreadline.console.ironpython_console (top-level)
missing module named org - imported by pickle (optional)
missing module named posix - imported by os (conditional, optional), shutil (conditional), importlib._bootstrap_external (conditional)
missing module named resource - imported by posix (top-level), test.support (delayed, conditional, optional)
missing module named pyimod03_importers - imported by C:\Programs\anaconda3\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (top-level)

 

1
komentarz 11 maja 2022 przez Marak123 Stary wyjadacz (11,150 p.)

[Aktualizacja, problem rozwiązany]

Po ciężkiej i długiej walce z próbą kompilacji aplikacji pyqt5 do pliku .exe za pomocą innych oprogramowań niż pyinstaller, postanowiłem powalczyć właśnie z nim i udało się. 

Okazało się ze instalując pyinstaller za pomocą

pip install pyinstaller

zainstalował on się na dystrybucji anaconda3 (kompilatorze tej dystrybucji) którego ścieżki do plików python i pip jest dodana w "zmiennych środowiskowych", a kompilując i instalując biblioteki w vscode domyślny kompilator python był ustawiony na ten zainstalowany przeze mnie w "C:\Python" a nie "C:\Programs\anaconda3" więc python pochodzący od dystrybucji anaconda3 nie miała bibliotek potrzebnych do kompilacji i dlatego był error. 

Po zainstalowaniu pyinstaller-a za pomocą pipa w "C:\Python" kompilacja poszła gładko, a sama aplikacja uruchamia się poprawnie.

 

Dla osób który mają podobny problem ze coś nie działa (zwłaszcza tych początkujących) polecam sprawdzić czy ścieżka do kompilatora jest odpowiednia, lub uruchamiać kompilatory ze ścieżek bezwzględnych. 

Podobne pytania

+1 głos
0 odpowiedzi 180 wizyt
pytanie zadane 3 sierpnia 2021 w Python przez Pico Obywatel (1,330 p.)
0 głosów
0 odpowiedzi 139 wizyt
pytanie zadane 18 sierpnia 2022 w Python przez xkamiz Użytkownik (500 p.)
0 głosów
2 odpowiedzi 438 wizyt
pytanie zadane 5 sierpnia 2019 w Python przez marcinconn Obywatel (1,560 p.)

92,105 zapytań

140,763 odpowiedzi

317,744 komentarzy

61,426 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 785p. - Łukasz Eckert
  2. 777p. - Dawid128
  3. 738p. - Eryk Andrzejewski
  4. 712p. - rucin93
  5. 674p. - CC PL
  6. 647p. - nidomika
  7. 637p. - Michal Drewniak
  8. 636p. - Mikbac
  9. 595p. - the Bielsky
  10. 573p. - robwarsz
  11. 571p. - TheLukaszNs
  12. 537p. - 13NOONE37
  13. 536p. - Arkadiusz Waluk
  14. 533p. - Henry Saele
  15. 525p. - sefirek
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...