Question

J'ai une application qui dépend de PyGTK, pygobject et pycairo que je conçu pour fonctionner sous Linux. Je veux le porter vers les fenêtres, mais quand j'exécute import gobject je reçois ceci:

Traceback (most recent call last):
    import gobject
  File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module>
    from gobject.constants import *
  File "C:\Python26\lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module>
    from _gobject import type_from_name
ImportError: DLL load failed: The specified procedure could not be found.

Cela semble être causé par le passage de la construction en utilisant MinGW à Microsoft Visual Studio, comme documenté Python Bug 3308 (closed: wontfix).

Est-il possible d'installer PyGTK / PyGObject d'une manière qui fonctionne avec Python 2.6 sous Windows, sans avoir à recompiler un ou l'autre de la source?

Était-ce utile?

La solution

Je l'ai fonctionne très bien, et il ne m'a pas donné beaucoup de mal, donc nous savons qu'il peut être fait ...

Gardez à l'esprit que vous aurez probablement besoin de tous les éléments suivants sont installés sur votre machine Windows:

Je soupçonne que dans votre cas que les bibliothèques PyGTK ne trouvent pas votre répertoire GTK + Runtime où les DLL sont. Vous devriez avoir la variable d'environnement GTK_BASEPATH réglé sur le répertoire de votre GTK + Runtime (généralement C: \ GTK).

S'il vous plaît voir aussi le PyGTK sur Windows FAQ

Maintenant, si vous essayez de compiler le Python PyGTK'ed avec py2exe, qui est un peu plus compliqué, mais il peut se faire aussi bien ...

Autres conseils

Le PyGTK tout-en-un installateur a été mis à jour récemment:

http://ftp.gnome.org/pub/GNOME /binaries/win32/pygtk/2.22/

Cela installera PyGTK, PyGObject, pycairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, gtk + -bundle et Glade. Il est absolument tout le nécessaire pour être en mesure de import gobject avec succès, import gtk, etc, sans problèmes de DLL.

64 bits Les utilisateurs Windows voient

http: //digitalpbk.blogspot. en / 2012/03 / installation-pygtk-pypango-et-pycairo-on.html

étapes ci-dessus donnera erreur DLL non valide sur 64 bits.

u devrait avoir pygtk, pycairo, pygboject et gtk + exécution ...

voir cela pour un tout en un installateur http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_. html

Faites attention à l'installation pack bundle PyGTK si une planification pour exécuter PyGTK par l'interprète embarqué et le code C / C ++ utilise déjà GTK. pack bundle PyGTK n'ajoute pas son exécution GTK à PATH.

Dans ce cas, peut-être le code C prendra GTK de PATH (comme probablement vous avez déjà installé pack bundle GTK) et Python utilisera ensemble distinct de bibliothèques d'exécution GTK.

Par conséquent, dans mon cas soit GUI C ou Python GUI utilisé pour exécuter correctement et utilisé pour les conflits lors de l'exécution ensemble.

Comme je l'utilise comme Psychopy ma collection python de base, pour résoudre ce problème, je viens d'installer PyGTK PyGTK, pycairo, pygobject au-dessus de Psychopy.

En plus d'utiliser un seul jeu d'exécution GTK j'ai dû initialiser GTK dans mon code C à PyGTK (et non par gtk_init (& argc, & argv) dans mon code C) après l'initialisation interpréteur Python.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top