2013-04-23 15 views
8

Ho un'applicazione Web che mi piacerebbe avere una versione di esso sul desktop. Sarebbe fantastico se potessi semplicemente compilarlo piuttosto che riscriverlo. (Non posso dare purtroppo al cliente il codice)Compilare il progetto django come applicazione desktop

Ho fatto qualche ricerca e ho trovato alcune soluzioni per compilare python in generale. Queste soluzioni sono:

  • cx_freeze
  • py2exe
  • pyinstaller (questo afferma che ha il supporto per Django, ma ancora inedito)
  • dbuilder.py

Quel applicazione desktop verrà eseguito principalmente su Windows, ma se trovo una soluzione che faccia funzionare Linux e Mac, sarebbe fantastico.

Qualcuno è riuscito a farlo correttamente? In tal caso, puoi indicarmi la direzione giusta?

Grazie.

+1

Bene, cx_freeze * afferma * di essere multipiattaforma, ma sospetto che nessuna di queste soluzioni "compili" realmente il codice, ma incorpori il bytecode Python in un "eseguibile" standalone, quindi sarebbe piuttosto banale estrarre qualcosa vicino al codice sorgente originale con uno strumento come [decompyle] (http://sourceforge.net/projects/decompyle/). – Aya

risposta

2

Sì, lo sto facendo su OSX. Non è semplice e, per quanto posso dire, potrei essere la prima persona a farlo con successo su OSX, quindi YMMV.

Pyinstaller, a partire da marzo, non era ancora pronto per il supporto Django. Ho archiviato alcuni biglietti da quando ho provato a utilizzarlo per pacchettizzare la mia applicazione e non ho ancora risolto questi problemi.

Sono andato con py2app, in definitiva, perché avevo una precedente esperienza con esso per altre applicazioni. Ho realizzato un progetto di esempio con py2app e Django e l'ho messo a on Github. Potresti trovarlo utile Ho anche legato alcune delle pagine che ho trovato utile nel processo, che ho riportato qui di seguito:

https://groups.google.com/forum/?fromgroups=#!topic/django-users/-VGqvHew35g

http://misunderstandings.wordpress.com/2008/06/26/django-desktop-app/

https://bitbucket.org/Lawouach/cherrypy-recipes/src/9c35b4b62ef1/frameworks/django_?at=default

Se dovessi farlo di nuovo, Probabilmente userò SQLAlchemy e wxPython o PySide. Consiglierei di riflettere attentamente su ciò che vorresti ottenere usando Django come applicazione pacchettizzata perché introduce molta complessità.

Problemi correlati