2009-02-24 11 views
19

Gram w około z podstawowych rzeczy do pracy w Pythonie, zanim przejdę do trybu pełnej prędkości dev. Oto specyfika:py2exe + sqlalchemy + sqlite problem

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 wydaje się wygenerować plik .exe poprawnie, ale kiedy wykonać dist/main.exe uzyskać to w 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 

Odgadywałem moje serce, ale nie mogę znaleźć żadnych rozwiązań. Jeśli nie mogę tego teraz uruchomić, moje nadzieje związane z używaniem Pythona do tego projektu będą przerywane i zacznę od nowa używając Ruby ... (nie chodzi o to, że coś jest nie tak z Ruby, chciałem tylko użyć tego projektu jako dobry sposób, aby nauczyć sobie Python)

Odpowiedz

29

trzeba zawierać pakiet sqlalchemy.databases.sqlite

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

dałbym Ci +100 gdybym mógł :) Dzięki –

+18

Dla osób przybywających na to pytanie latach późniejszych: nie sqlalchemy ma pakiet z to imię; zamiast tego wydaje się, że jest to 'sqlalchemy.dialects.sqlite'. –

+1

W dodatku do końcówki @ Brandona dla tych, którzy używają Firebirda, znalazłem tę opcję działającą: '" pakiety ": [" sqlalchemy.dialects.firebird "," kinterbasdb "]' – bluish

5

trzeba zmienić pakiet sqlalchemy.dialects.sqlite

setup ( okna = [ {"script": "main.py"}], opcje = {"py2exe": { "obejmuje": ["sip", "PyQt4.QtSql"], „pakiety”: [ „sqlalchemy.dialects.sqlite”] }})