在py2exe中包含Gtk

时间:2015-07-08 10:33:25

标签: python gtk py2exe importerror

我写了一个小工具,想用py2exe将它编译成一个独立的二进制文件。

我尝试使用'py2exe'来实现这一目标。

我的.py文件可以按照我的意愿运行。

但是在生成.exe后,执行它会出现以下错误。

Traceback (most recent call last):
  File "league.py", line 7, in <module>
  File "gi\__init__.pyc", line 42, in <module>

  File "gi\_gi.pyc", line 12, in <module>
  File "gi\_gi.pyc", line 10, in __load
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

setup.py:

from distutils.core import setup
import py2exe

setup(name="LoL-CLI",
      version="1.0",
      console=['league.py'],
      options={"py2exe": {
            'dll_excludes':['libglib-2.0-0.dll',
                            'libgirepository-1.0-1.dll',
                            'libffi-6.dll',
                            'libgobject-2.0-0.dll',
                            'libcairo-gobject-2.dll']
                        }
            }
)

我认为我的python解释器可以找到gi库,但是py2exe没有。 我排除了所有的DLL,因为它给我错误没有找到这些DLL和谷歌说我应该排除它。

我也找到了在执行“setup.py py2exe”之后将“gi”文件夹复制到'dist'的解决方案,但它没有用。

欣赏任何琐事或想法。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为,您可能需要明确定义gtk应用程序所依赖的所有模块。

options={"py2exe": {
            'dll_excludes':['libglib-2.0-0.dll',
                            'libgirepository-1.0-1.dll',
                            'libffi-6.dll',
                            'libgobject-2.0-0.dll',
                            'libcairo-gobject-2.dll']
                        },
             'includes': 'gi, cairo, pango, pangocairo, atk, gobject, gio, gtk.keysyms',
            }