Проблема с py2exe + sqlalchemy + sqlite

Я играю с некоторыми базовыми вещами для работы в 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)


person Jason Miesionczek    schedule 24.02.2009    source источник


Ответы (2)


вам нужно включить пакет sqlalchemy.databases.sqlite

setup(
  windows=[{"script" : "main.py"}],
  options={"py2exe" : {
    "includes": ["sip", "PyQt4.QtSql"],
    "packages": ["sqlalchemy.databases.sqlite"]
}})
person Toni Ruža    schedule 24.02.2009
comment
Я бы дал вам +100, если бы мог :) Спасибо - person Jason Miesionczek; 24.02.2009
comment
Для тех, кто задаст этот вопрос годы спустя: у sqlalchemy больше нет пакета с таким именем; вместо этого, кажется, sqlalchemy.dialects.sqlite. - person Brandon Rhodes; 12.11.2010
comment
В зависимости от совета @Brandon, для тех, кто использует Firebird, я обнаружил, что этот вариант работает: "packages": ["sqlalchemy.dialects.firebird", "kinterbasdb"] - person bluish; 10.01.2011
comment
Для тех, кто использует MySQL, вам необходимо иметь "ascii": 0 и "packages": ["sqlalchemy.dialects.mysql","MySQLdb"] в словаре py2exe. Для python2.7 и sqlalchemy .7 - person Spencer Rathbun; 01.02.2012

вам нужно изменить пакет sqlalchemy.dialects.sqlite

setup( windows=[{"script" : "main.py"}], options={"py2exe" : { "includes": ["sip", "PyQt4.QtSql"], "packages": ["sqlalchemy. диалекты.sqlite"] }})

person Hope    schedule 24.02.2011