尝试使用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.client
,suds.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
答案 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
。