Próbuję użyć Pyinstaller, aby zbudować EXE z mojego kodu Pythona. Jednym z modułów, których używam, jest Pubsub (Naprawdę Pypubsub. Kiedyś był częścią Wxpython). Otrzymuję błędy, kiedy próbuję uruchomić EXE. Narzeka się "Importerror: Brak modułu o nazwie ListeneRimpl".

Widziałem kilka artykułów o zdobyciu wx.lib.pubsub do pracy (ma znane problemy z pyinstaller). Próbowałem rozwiązania przedstawione w tych artykułach (nieznacznie zmodyfikowane, aby wyjaśnić, że nie jest już częścią WX), ale nie ma szczęścia.

Mogę obok początkowego "Importerror: Brak modułu o nazwie LICUSERIMPL" Błąd, dodając ścieżkę do prawej sameRimpl (Kwargs One) do listy plików do analizy w moim pliku specyfikacji, ale następnie uderzyłem kolejne błędy dotyczące importowania "wydawcy" . Ten błąd nie jest naprawiony, dodając jego ścieżkę w pliku specyfikacji.

Myślę, że rozwiązanie nie powinno wiązać się z dodaniem ścieżki do ListeleRimpl.py w moim pliku specyfikacji ... ale nie jestem pewien, jak długo pracować szczęśliwie.

Informacje dodatkowe

  • Korzystanie z wersji Pubsub: 3.1.1b1.201005.R243
  • Korzystanie z wersji Pyinstaller: 2.0
  • Platforma: Win7.
1
greenhat 25 wrzesień 2012, 22:41

1 odpowiedź

Najlepsza odpowiedź

Problemy z Pubsub rozwiązani (chociaż EXE nadal nie działa).

Jeśli spojrzysz na komentarze Oto (zwłaszcza komentarz # 15 przez sebastian.hilbert) Głównie rozwiązuje problemy z kilkoma ulepszaniem.

Niezbędne poprawki.

  1. Zmień nazwiska na plikach hook na hak-pubsub.Core.py i hak-pubsub.setuparg1.py.
  2. Wewnętrzny do tych plików należy pozbyć się odniesień do WX.
  3. Włącz pliki haczykowe. Możesz zrobić to jeden z dwóch sposobów. Łatwy sposób jest upuszczenie tych nowych plików haczyków do "pyinstaller-2.0 pyinstaller haczyków", w którym domyślnie pyinstaller szuka haków. CZYSZCZENIE / ŁADNY SPOSÓB DO ZROZUMIENIA MUSI WŁAŚCIWOŚCI W SWÓJ WŁASNY FOLDER I DODAĆ TEN FOLDER jako HookSpath w pliku specyfikacji.

NB: Nie było dla mnie jasne, jak dodać hookspath. W twoim spektaklu, w połączeniu, aby przeanalizować, znajduje się HookSpath Arg. Chceić listy nie sznurka. Więc chcesz zrobić coś takiego jak HookSpath = ["PATH1", "PATH2" itp.].

NB2: Dodatkowo, jeśli poprosisz o "PATH.DIRNAME (PATH.ABSPATH (__ plik__))" Otrzymasz katalog dla pyinstaller, a nie lokalizację, w której mieszka plik Plik.

2
greenhat 26 wrzesień 2012, 00:10