[OpenSlides users-de] Neue Portable App

Stefan Frauenknecht stefan at frauenknecht.net
Mo Mär 21 15:54:54 CET 2016


Hallo Andy,

vielen Dank für deine Überlegungen! Es stimmt, meine Idee mit dem PYTHONPATH war Quatsch. Der Grund für das Verhalten war aber ein ganz anderer: Es war der exit() Aufruf in der __main__.py

if __name__ == "__main__":
    exit(main())

py2app mochte das nicht. D.h. meine Aussage, das Aufrufe in der Form python -m openslides … nicht gehen, ist falsch.

Allerdings habe ich jetzt den nächsten Fehler:

ImportError: The 'packaging' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.

Das hat irgendwas mit setuptools zu tun. Laut google haben einige Versionen einen Bug, der zu diesem Fehler führt. Das sollte aber lösbar sein.


Vielen Dank
Stefan


> Am 20.03.2016 um 21:15 schrieb Andy Kittner <andy.kittner at gmail.com>:
> 
> Signierter PGP-Teil
> On 19/03/16 22:18, Stefan Frauenknecht wrote:
> > Hallo Leute,
> >
> > ich kümmere mich gerade um die Portable App, zunächst um die OS X Version. Hehres Ziel ist es ja aus den Code eine App mit py2app (https://pythonhosted.org/py2app/) für den Mac und mit py2exe für Windows zu bauen zu können. Allerdings gibt es mit py2app zwei Probleme:
> >
> > 1. py2app kommt (noch) nicht mit wxPython-Phoenix klar.
> > Um das zu umschiffen habe ich openslides-gui mit tkinter neu gebaut. Das war einfach. War ja auch nicht viel zu migrieren.
> >
> > 2. py2app kommt nicht mit unseren Aufrufen an openslides klar.
> > D.h. um z.B. den Server zu starten wird python -u -m openslides start 0.0.0.0:8000 in einem Subprozess ausgeführt. Das ist eigentlich super gelöst, funktioniert aber leider in der gebauten App nicht. py2app kann das einfach nicht (Stichwort runpy). Nun hatte ich eine einfache Idee, die leider auch nicht funktioniert: Ich habe versucht das Skript, also openslides.__main__.py, direkt aufzurufen, dabei den Subprozess mit PYTHONPATH und PYTHONHOME richtig konfiguriert. Ich bin mir noch nicht sicher, ob es so lösbar ist. PYTHONPATH muss ja auf das site-packages enthalten. Nur wo ist das in der gebauten App?
> py2exe und cx_Freeze bauen IIRC beide ein library.zip mit allen
> "benötigten"[1] Modulen, je noch konfiguration wird das evtl noch als Datenblob an
> die .exe dran gehängt. Um den PYTHONPATH davon muss man sich aber nicht
> selbst kümmern, die wrapper.exe die diese Tools generieren sollte das
> alles schon korrekt einstellen. Ich würde vermuten das py2app das
> ähnlich macht.
> 
> ```import openslides.__main__``` sollte also prinzipiell einfach so gehen.
> Falls nicht müsstest du mal den genauen Fehler den du bekommst posten.
> Ich könnte mir aber vorstellen das entweder eine Abhängikeit fehlt (siehe [1]), oder
> nicht damit klar kommt wenn sie in nem library zip ist[2].
> 
> 
> [1] Sie suchen im prinzip alle import statements zusammen und bauen so
> eine Liste von benötigten Modulen, speziell wenn dinge erst zur
> Laufzeitimportiert dynamisch importiert werden fehlt aber immer mal was.
> Es sollte da aber Optionen geben mit denen du das bundeln erzwingen/
> bzw. auch verhindern kannst.
> 
> 
> [2] Das war IIRC auch einer der Gründe warum wir damals kein py2exe/cx_Freeze für die
> Windows-portable genommen haben, django mochte das nicht so wirklich (da
> wurde ziemlich viel auf Basis von __file__ gesucht, und erwartet das das
> ein normaler Dateipfad ist).
> Wenn das das Problem ist könntest du versuchen django von der Liste der
> benötigten Module auszuschließen und statt dessen so ins Filesystem zu
> legen. Anschließend dann in deinem Main-Modul sys.path passend
> manipulieren. Oder aber, was noch besser wäre, du findest eine Option
> die die ganzen Python-Module gleich plain ins FS legt.
> 
> 
> Gruß,
> Andy
> 
> _______________________________________________
> OpenSlides users-de mailing list
> users-de at openslides.org
> https://mail.openslides.org/listinfo/users-de

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 203 bytes
Beschreibung: Message signed with OpenPGP using GPGMail
URL         : <http://mail.openslides.org/pipermail/users-de/attachments/20160321/0e3efbc6/attachment.sig>


More information about the users-de mailing list