【问题标题】:py2exe + sqlalchemy + sqlite problempy2exe + sqlalchemy + sqlite 问题
【发布时间】:2010-10-09 14:34:58
【问题描述】:

在我进入全速开发模式之前,我正在尝试让一些基本的东西在 Python 中工作。具体如下:

Python 2.5.4
PyQt4 4.4.3
SqlAlchemy 0.5.2
py2exe 0.6.9
setuptools 0.6c9
pysqlite 2.5.1

setup.py:

from distutils.core import setup
import py2exe

setup(windows=[{"script" : "main.py"}], options={"py2exe" : {"includes" : ["sip", "PyQt4.QtSql","sqlite3"],"packages":["sqlite3",]}})

py2exe 似乎可以正确生成 .exe 文件,但是当我执行 dist/main.exe 时,我在 main.exe.log 中得到了这个

Traceback (most recent call last):
  File "main.py", line 18, in <module>
  File "main.py", line 14, in main
  File "db\manager.pyc", line 12, in __init__
  File "sqlalchemy\engine\__init__.pyc", line 223, in create_engine
  File "sqlalchemy\engine\strategies.pyc", line 48, in create
  File "sqlalchemy\engine\url.pyc", line 91, in get_dialect
ImportError: No module named sqlite

我一直在谷歌上搜索,但似乎找不到任何解决方案。如果我现在不能让它工作,我希望在这个项目中使用 Python 的希望将破灭,我将重新开始使用 Ruby...(并不是说 Ruby 有什么问题,我只是想使用这个项目作为自学 Python 的好方法)

【问题讨论】:

    标签: python sqlite sqlalchemy py2exe


    【解决方案1】:

    您需要包含 sqlalchemy.databases.sqlite 包

    setup(
      windows=[{"script" : "main.py"}],
      options={"py2exe" : {
        "includes": ["sip", "PyQt4.QtSql"],
        "packages": ["sqlalchemy.databases.sqlite"]
    }})
    

    【讨论】:

    • 如果可以的话,我会给你+100 :) 谢谢
    • 对于多年后遇到这个问题的人:sqlalchemy 不再有这个名称的包;相反,它似乎是sqlalchemy.dialects.sqlite
    • 沉迷于@Brandon 的提示,对于那些使用 Firebird 的人,我发现此选项有效:"packages": ["sqlalchemy.dialects.firebird", "kinterbasdb"]
    • 对于那些使用 MySQL 的人,您的 py2exe 字典中需要有 "ascii": 0"packages": ["sqlalchemy.dialects.mysql","MySQLdb"]。对于 python2.7 和 sqlalchemy .7
    【解决方案2】:

    你需要改成 sqlalchemy.dialects.sqlite 包

    设置( windows=[{"script" : "main.py"}], 选项={“py2exe”:{ “包括”:[“sip”,“PyQt4.QtSql”], “包”:[“sqlalchemy.dialects.sqlite”] }})

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多