Package PyGObject Python 3-Programm mit pynsist?

Ich möchte ein Python3-PyGObject-Programm mit pynsist packen. Das Repository hat ein Beispiel für PyGTK und es hat mich denken lassen, dass es nicht zu schwer sein sollte, das Beispiel zu ändern.

Das Beispiel finden Sie hier:

https: //github.com/takluyver/pynsist/tree/master/examples/pygt

In dieser Datei https: //github.com/takluyver/pynsist/blob/master/examples/pygtk/grab_files.s) Ich denke, man muss nur die Dateien für GTK 3 greifen http: //www.gtk.org/download/win32.ph):

wget -O gtkbundle.zip http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip
wget -O pygobject.exe http://sourceforge.net/projects/pygobjectwin32/files/pygi-aio-3.14.0_rev12-setup.exe/download
wget -O pycairo.zip http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.10.2-2_win32.zip

Ich bin mir nicht sicher, was ich mit der vierten Zeile anfangen soll, da diese Bindungen meines Wissens bereits im gtk- oder pygobject-Bundle enthalten sein sollten:

 wget -O pygtk.exe http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-2.24.0.win32-py2.7.exe

Ich habe dann versucht, diese Datei anzupassen https: //github.com/takluyver/pynsist/blob/master/examples/pygtk/installer.cf) mit einbeziehen (@ verwendgi Anstatt vongi.repository):

[Include]
packages=gi

Dieser resultierende Fehler ist:

raise ExtensionModuleMismatch(extensionmod_errmsg % ('Windows', path)) nsist.copymodules.ExtensionModuleMismatch: Found an extension module that will not be usable on Windows: /usr/lib/python3/dist-packages/gi/_gi.cpython-34m-x86_64-linux-gnu.so Put Windows packages in pynsist_pkgs/ to avoid this.

Weiß irgendjemand, wie ein Programm richtig vorgeht (wie z. B. eines der folgenden:https: //python-gtk-3-tutorial.readthedocs.or) wäre

Edit 1

Nach dem Packen und Installieren des Programms unter Windows führt das Starten des Testprogramms zu folgendem Traceback:

Traceback (most recent call last):
  File "C:\Program Files (x86)\hellogtk\hellogtk.launch.pyw", line 31, in <module>
    from gtk_test import main
  File "C:\Program Files (x86)\hellogtk\pkgs\gtk_test.py", line 3, in <module>
    from gi.repository import Gtk
  File "C:\Program Files (x86)\hellogtk\pkgs\gi\__init__.py", line 42, in <module>
    from . import _gi
ImportError: DLL load failed: The specified module could not be found.

Es ist seltsam, dass dieser ImportError auftritt, weil ein @ vorhanden is_gi.pyd -Datei im selben Verzeichnis gi) als die__init__.py

Dies ist das aktuelle Layout:

 - directory
 |- pynsist_pkgs
 |-- cairo
 |--- _cairo.pyd
 |--- __init__.py
 |-- gi
 |--- _gobject
 |--- overrides
 |--- repository
 |--- __init__.py
 |--- _gi.pyd
 |--- ...
 |-- gtk
 |--- bin
 |--- etc
 |--- lib
 |--- manifest
 |--- share
 |-- dbus
 |--- __init__.py
 |--- ...
 |-- gnome
 |--- ...
 |-- pygtkcompat
 |--- ...
 |-- _dbus_bindings.pyd
 |-- _dbus_glib_bindings.pyd
 |-- ...
 |- gtk_test.py
 |- grab_files.sh
 |- installer.cfg
 |- gtk_preamble.py

Und ich habe das @ benutpy-3.4-64 -Ordner der Pygobject-Bindungen. Das Linux, auf dem ich das Paket erstelle, ist 64 Bit, und das Windows, auf dem ich das Programm ausführe, ist ebenfalls 64 Bit.

Edit 2:

Mit Hilfe von Dependency-Walker kann ich feststellen, dass 2 DLLs fehlen:GPSVC.DLL undIESHIMS.DLL.

Edit 3:

Ich habe diese 2 DLLs auf dem System gefunden und in verschiedene Verzeichnisse des Testprogramms kopiert, aber es hat nicht funktioniert.

Edit 4:

Dies könnte für den Importfehler nützlich sein:

import gtk / glib erzeugt ImportError: DLL-Laden fehlgeschlagen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage