2012-10-19 7 views
11

Sto sviluppando un'applicazione che deve essere compatibile al 100% su Windows e Linux. Su Linux non ho problemi, ma sulle finestre sono arrivato fino a questo messaggio: dall'importazione gi.repository Gtk ImportError: Nessun modulo chiamato gigi.repository Windows

ho installato pygobject, pygtkallinone, gtk .. quello che mi manca?

+0

hai provato 'import gtk'? – Blender

+0

OMG è stato veloce, e ha funzionato !! grazie: D –

+8

'gi' è per PyGObject, che è GTK + 3, in cui ogni modulo è in maiuscolo. Quando usi 'import gtk' stai usando PyGTK (GTK + 2). – gpoo

risposta

13

gi.repository modulo è chiamato PyGObject ed è per GTK + 3 e non è ancora disponibile per Windows (non v'è stata esperimenti, ma non è pronto per quanto ne so). https://live.gnome.org/PyGObject

gtk modulo è chiamato PyGTK ed è per Gtk + 2 ed è molto maturo su piattaforme Windows (in particolare 2.24). http://www.pygtk.org/

Qual è la differenza?

  • PyGObject ha qualche supporto di Windows scarno. PyGtk ha un grande supporto per questo sistema operativo.
  • PyGObject è ciò che viene chiamato un legame dinamico e PyGtk è statico.
  • PyGObject è nuovo e il futuro e PyGtk è passato, maturo e un giorno sarà deprecato.
  • documentazione PyGObject e gli esempi sono molto molto limitate, e PyGTK uno sono molto molto completo: http://developer.gnome.org/pygtk/stable/
  • Essi non sono compatibili, non è possibile utilizzare entrambi e è necessario scegliere uno.
  • PyGObject è in sviluppo attivo, non verranno introdotte nuove funzionalità per PyGtk.
  • Se si utilizza Glade, la versione più recente sarà per PyGObject (ad esempio 3.12.1). Se si desidera utilizzare Glade per PyGtk, installare la versione 3.8.0.

Se si sceglie di utilizzare PyGtk, esiste un ottimo supporto per il blocco dell'applicazione. È possibile controllare la documentazione e i file di supporto per la mia applicazione qui: http://sourceforge.net/p/nestededitor/code/247/tree/trunk/dist/windows/

Spero che sia d'aiuto.

EDIT:

Molte cose sono cambiate in due anni. Per favore vedi la risposta di gianmt.

+0

ci sono problemi con il congelamento delle applicazioni PyGTK usando [PyInstaller] (http://www.pyinstaller.org/)? py2exe è solo per Windows – jfs

+0

Mai testato con PyInstaller, mi spiace. – Havok

+0

PyGObject ha qualche documentazione, che non è poi così male: http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html – liberforce

18

La maggior parte di Havok risposta è corretta, se non che la documentazione è stata migliorata molto ultimamente, con un tutorial:

tra cui una versione PDF per la lettura offline:

E un manuale di riferimento API completa, non solo di Gtk, ma anche molte altre librerie che è possibile utilizzare con l'introspezione:

su Windows il supporto è grande, un sacco di fatica ha stato messo nella creazione di tutti i file eseguibili di Windows e le librerie, l'ultima release di pygi-AIO è 3.10.6:

Ho anche messo istruzioni sul wiki di Gnome su come costruire il win32 con pygobject introspezione, non è così difficile, ho anche caricato un setup.py che funziona davvero:

Quindi la risposta è, non andare con PyGTK

+2

Ottima risposta, grazie. Buono a sapersi che molte cose sono migliorate nel corso degli anni. – Havok

+0

Ottima risposta. La versione di pygi-aio è stata persino spinta a 3,14 un giorno fa. – tobias47n9e

+1

I file dati in 'http: //sourceforge.net/projects/pygobjectwin32/files/? Source = navbar' semplicemente non funzionano. Il programma di installazione copia le cose, ma nessuna libreria è caricabile da python quando si utilizza 'da gi.repository import Gtk'. –

Problemi correlati