我通过'setup.py install'
在win7中安装了sqlalchemy-0.8.1和“import sqlalchemy”效果很好
但是当我想用py2exe打包我的文件时,会发生错误
ImportError:没有名为sqlalchemy的模块
以下是我的setup.py
的一部分import os
import glob
from distutils.core import setup
import py2exe
includes = ['encodings', 'encodings.*', 'glob',
'sqlite3', 'wx.lib.scrolledpanel',
'wx.richtext', 'wx.lib.mixins.listctrl',
'wx.lib.sized_controls', 'sqlalchemy']
excludes = ['pyreadline', 'difflib', 'doctest',
'tarfile', 'pickletools', 'optparse',
'pickle', 'cookielib', 'urllib',
'Tkinter', 'email', 'tcl', 'Tkconstants' ]
py2exe_options = {
'build': {'build_base': 'dist/'},
'py2exe': {
'compressed': 1,
'dll_excludes': ['msvcp90.dll', 'w9xpopen.exe'],
'optimize': 2,
'includes': includes,
'excludes': excludes,
'dist_dir': 'dist',
'ascii': False,
}
}
答案 0 :(得分:0)
尝试在sqlalchemy
中加入packages
py2exe_options = {
"packages": ["sqlalchemy.databases.sqlite"]
}
显然我猜你对sqlite
感兴趣。
答案 1 :(得分:0)
这通常对我有用。将下一行放入主脚本中,告诉py2exe
编译。
import sqlalchemy
即使一般py2exe
相当贪婪并且包含的内容远远超过需要,但有时它恰恰相反并跳过所需的包,尽管您在includes
中列出了它们。手动导入它们通常有效。请在下面添加注释,了解为什么要导入此模块中不需要的软件包。
答案 2 :(得分:0)
这里的问题是SQLAlchemy安装在你系统上的一个蛋中;你需要它解压缩,或教py2exe读取鸡蛋。有关详细信息,请参阅the py2exe wiki page ExeWithEggs。
尽管如此,最简单的方法是重新安装SQLAlchemy解压缩:
easy_install --always-unzip sqlalchemy