【问题标题】:py2exe [ImportError: No module named sqlalchemy]py2exe [ImportError: 没有名为 sqlalchemy 的模块]
【发布时间】:2015-10-05 19:24:40
【问题描述】:

我通过'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,
        }
    }

【问题讨论】:

  • 运行setup.py py2exe时是否出现错误?
  • 是的,你有什么想法吗?
  • 验证 sqlalchemy 没有安装为压缩鸡蛋。
  • 你是对的,我想通了!谢谢!
  • 我最初使用 'easy_install SQLAlchemy' 安装了 SQLAlchemy,在我的程序中使用 py2exe 时遇到了同样的错误。当我使用 pip 升级 SQLAlchemy 时,它在输入“pip install SQLAlchemy --upgrade”后删除了错误

标签: python sqlalchemy py2exe


【解决方案1】:

尝试在packages 中也包含sqlalchemy

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

显然我猜你对sqlite 感兴趣。

【讨论】:

  • 与sqlite无关。这是 sqlalchemy 的安装方式。不过,谢谢!
【解决方案2】:

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

import sqlalchemy

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

【讨论】:

    【解决方案3】:

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

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

    easy_install --always-unzip sqlalchemy
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 2015-02-17
      • 1970-01-01
      相关资源
      最近更新 更多