Pyinstaller

0

Hej, mam problem z pyinstallerem.

Tworze sobie aplikacje exe wedlug tego: https://mborgerson.com/creating-an-executable-from-a-python-script/

i mam folder glowny a w nim podfoldery dwa , jeden z aplikacja a drugi z modułem ktory importuje w taki sposob: from abc.klasa import klasa1 . W pycharm wszystko działa , zadnych errorow nie ma , natomiast po wygenerowaniu exe otwiera sie konsola w niej blad no module named abc.klasa . W tym folderze znajduje sie plik init.py wiec powinien byc traktowany jako modul a nie jest, szukalem w google, dodalem do sys.path ale nie pomaga , ktos moze wie jak to rozwiazac? probowalem tez z --hidden-import ale tez nie działało

0

A wszystkie foldery i pliki zewnętrzne masz w odpowiednim miejscu? Pyinstaller chyba ich nie przenosi automatycznie

2

Nie próbowałem (póki co) użyć pyinstallera do spakowania całego drzewa do *.exe, ale w artykule, który zalinkowałeś gość budował aplikację z pojedynczego pliku więc miało to prawo nie wypalić ;) Jeśli nie wskażesz pyinstallerowi, żeby zrobił inaczej, to wygeneruje sobie jakiś dowolny specfile i najwyraźniej nie jest na tyle mądry, by (poprawnie, może jakoś próbuje) zawrzeć w nim ścieżki do importowanych modułów. Z tego, co widzę możesz spróbować samemu skonfigurować specfile: https://pythonhosted.org/PyInstaller/spec-files.html i podciągnąć do apki nie tylko moduły Pythonowe, ale też binarki i inne takie.

Możesz też zainteresować się toolem Nuitka http://nuitka.net/pages/overview.html - kompiluje Pythona do C a ten pod spodem do binarki. Twórcy twierdzą, że generuje znacznie szybszy kod niż CPython, a planują dalsze optymalizację - jak naprawią mi lapka to może spróbuję zrobić porównanie. Tylko nie ma póki co wsparcia cross-kompilacji, ale jest opcja kompilacji "tylko do C", potem możesz się już sam clangiem/gcc pobawić jeśli potrzebujesz. No i coś mi szwankowało jak próbowałem skompilować aplikację napisaną we Flasku, ale podejrzewam że albo to ja coś spartaczyłem, albo tool wymięka przy niektórych innych dependencjach ;)

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