在安装脚本中包含嵌套模块

时间:2014-06-22 12:55:49

标签: python pyqt py2exe setup.py

我正在尝试使用py2exe将Python项目转换为exe。我的项目目录结构是:

project/
    __init__.py
    main.py
    src/
        __init__.py
        interface/
            __init__.py
            window.py
            secondary.py
    ui/
        settings.ui
    icons/
        project.png

main.py中,有import src.interface.window as win语句,当我尝试使用py2exe创建exe时,它会显示错误消息:The following modules appear to be missing: [src.interface.window]。我不知道如何在设置脚本中包含所有模块,以便distutils可以识别它们。

我的设置脚本:

import py2exe
from distutils.core import setup

setup(packages=['project.src.interface'],
      package_data={'project': ['ui/*', 'icons/*']},
      windows=[{'script': 'project/main.py'}],
      options={'py2exe': {'skip_archive': True, 'includes': ['sip', 'pgmagick', 'PyQt4.QtGui', 'PyQt4.QtCore']}})

1 个答案:

答案 0 :(得分:0)

尝试此操作(假设安装文件位于project/目录中):

setup(name='project'
      packages=['project', 'project.interface'],
      package_dir={'project': 'src', 'project.interface': 'src/interface'},
      package_data={'project': ['ui/*', 'icons/*']},
      windows=[{'script': 'project/main.py'}],
      options={'py2exe': {'skip_archive': True, 'includes': ['sip', 'pgmagick', 'PyQt4.QtGui', 'PyQt4.QtCore']}})

然后:

import project.interface.window

(注意:我没有测试过它)