Пакет PyGObject Python 3 с программой pynsist?

Я хотел бы упаковать программу Python3-PyGObject с помощью pynsist. В репозитории есть пример для PyGTK, и это заставило меня подумать, что не должно быть слишком сложно изменить пример.

Пример можно найти здесь:

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

В этом файле (https://github.com/takluyver/pynsist/blob/master/examples/pygtk/grab_files.shЯ думаю, что нужно просто взять файлы, предназначенные для GTK 3 (http://www.gtk.org/download/win32.php):

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

Я не уверен, что делать с четвертой строкой, потому что, насколько я понимаю, эти привязки уже должны быть внутри пакета gtk или pygobject:

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

Затем я попытался настроить этот файл (https://github.com/takluyver/pynsist/blob/master/examples/pygtk/installer.cfg) включить (использоватьgi вместоgi.repository):

[Include]
packages=gi

Это приводит к ошибке:

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.

Кто-нибудь знает, каков правильный подход к программе (например, один из них:https://python-gtk-3-tutorial.readthedocs.org) было бы?

Редактировать 1

После упаковки и установки программы в Windows запуск тестовой программы приводит к следующей трассировке:

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.

Странно, что это ImportError происходит, потому что есть_gi.pyd-файл в том же каталоге (gi) как__init__.py

Это текущий макет:

 - 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

И я использовалpy-3.4-64 папка привязок пигобъекта. Linux, на котором я создаю пакет, является 64-битным, и Windows, на которой я запускаю программу, также является 64-битной.

Изменить 2:

Используя Dependency-Walker, я вижу, что отсутствуют 2 DLL:GPSVC.DLL а такжеIESHIMS.DLL.

Изменить 3:

Я нашел эти 2 DLL в системе и скопировал их в разные каталоги тестовой программы, но это не сработало.

Изменить 4:

Это может быть полезно для ошибки импорта:

import gtk / glib выдает ImportError: сбой загрузки DLL

Ответы на вопрос(1)

Ваш ответ на вопрос