使用py2exe构建控制台可执行文件,接收suds导入错误

时间:2011-09-12 20:49:14

标签: python windows py2exe suds setup.py

尝试使用py2exe:python setup.py py2exe构建.exe,收到错误:

ImportError: No module named suds

我做了一些研究,表明模块必须特别包含在setup.py中。这是我的setup.py:

from distutils.core import setup
import py2exe

setup(console = [{'script':'report.py'}],
        options = {
            'py2exe': {
                'bundle_files' : 1,
                'includes' : ['suds']
            }
        })

我尝试过包含名称suds.clientsuds.transport.https,但错误仍然存​​在。 py2exe似乎有几个模块特定要求here,但我没有看到任何特定文件的文件。

找到有关py2exe如何找到必要模块here的一些信息。

的输出
C:\Python27>python -m py2exe.mf -d /path/to/report.py
path:
    ''
    'C:\\Python27\\lib\\site-packages\\pyyaml-3.10-py2.7-win32.egg'
    'C:\\Python27\\lib\\site-packages\\progressbar-2.3-py2.7.egg'
    'C:\\Python27\\lib\\site-packages\\sqlalchemy-0.7.2-py2.7-win32.egg'
    'C:\\Python27\\lib\\site-packages\\soappy-0.12.5-py2.7.egg'
    'C:\\Python27\\lib\\site-packages\\wstools-0.3-py2.7.egg'
    'C:\\Python27\\lib\\site-packages\\fpconst-0.7.2-py2.7.egg'
    'C:\\Python27\\lib\\site-packages\\python_ntlm-1.0.1-py2.7.egg'
    'C:\\Python27\\lib\\site-packages\\django-1.3-py2.7.egg'
    'C:\\Python27\\lib\\site-packages\\pyodbc-2.1.9-py2.7-win32.egg'
    'C:\\Python27\\lib\\site-packages\\suds-0.4-py2.7.egg'
    'C:\\Windows\\system32\\python27.zip'
    'C:\\Python27\\DLLs'
    'C:\\Python27\\lib'
    'C:\\Python27\\lib\\plat-win'
    'C:\\Python27\\lib\\lib-tk'
    'C:\\Python27'
    'C:\\Python27\\lib\\site-packages'
run_script 'report.py'
    load_module '__main__' 'fp' 'report.py'
        load_module 'binascii' None None
    load_module -> Module('binascii')
    ImportError: 'No module named suds'
    ImportError: 'No module named suds'
load_module -> Module('__main__', 'report.py')

  Name                      File
  ----                      ----
m __main__                  report.py
m binascii

Missing modules:
? suds.client imported from __main__
? suds.transport.https imported from __main__

是否有人使用suds包从脚本成功构建了py2exe可执行文件?

操作系统:Windows 7 32位,Python:2.7,suds:0.4,py2exe 0.6.9

2 个答案:

答案 0 :(得分:2)

问题不在于py2exe,我已经将它缩小到py2exe / mf.py中第498行的imp.find_module调用。 suds模块导入OK,我可以在sys.path中看到它,但

import imp
imp.find_module('suds', sys.path)

报告未找到任何模块。

打开特定于imp模块的后续问题。

答案 1 :(得分:0)

通常,在安装脚本中导入所需的库可以帮助解决这些问题。在import py2exe行之后,尝试import suds