1

我通过'setup.py install'在我的win7中安装了sqlalchemy-0.8.1

并且“导入 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,
        }
    }
4

3 回答 3

0

也尝试包括sqlalchemy在内packages

py2exe_options = {
    "packages": ["sqlalchemy.databases.sqlite"]
}

显然我猜你对sqlite.

于 2013-05-22T14:33:44.840 回答
0

这通常对我有用。将下一行放入您告诉py2exe编译的主脚本中。

import sqlalchemy

尽管总的来说py2exe它相当贪婪并且包含的​​内容远远超过所需,但有时它会做相反的事情并跳过所需的包,尽管您将它们列出在includes. 手动导入它们通常有效。只需在它旁边添加评论,说明为什么要在此模块中导入不需要的包。

于 2013-06-01T21:51:27.640 回答
0

这里的问题是 SQLAlchemy 安装在您系统上的一个鸡蛋中;您需要将其解压缩,或教 py2exe 读取鸡蛋。有关详细概述,请参阅py2exe wiki 页面 ExeWithEggs

也就是说,最简单的方法是重新安装解压缩的 SQLAlchemy:

easy_install --always-unzip sqlalchemy
于 2015-10-05T11:24:40.337 回答