2009-02-24 16 views
19

Sto giocando con alcune cose di base per lavorare in Python prima di andare in modalità dev di piena velocità. Ecco le specifiche: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 appare per generare correttamente il file exe, ma quando eseguo dist/main.exe ottengo questo nel 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 

Ho cercato a gran voce il mio cuore, ma non riesco a trovare alcuna soluzione a questo. Se non riesco a farlo funzionare ora, le mie speranze di usare Python per questo progetto saranno tratteggiate e ricomincerò a usare Ruby ... (non che ci sia qualcosa di sbagliato in Ruby, volevo solo usare questo progetto come un buon modo per insegnare a me stesso Python)

risposta

29

è necessario includere il pacchetto sqlalchemy.databases.sqlite

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

ti darei +100 se potessi :) Grazie –

+18

Per chi arriva a questa domanda gli anni più tardi: sqlalchemy non ha più un pacchetto con questo nome; invece, sembra essere 'sqlalchemy.dialects.sqlite'. –

+1

In aggiunta al consiglio di @ Brandon, per chi utilizza Firebird ho trovato questa opzione funzionante: '" pacchetti ": [" sqlalchemy.dialects.firebird "," kinterbasdb "]' – bluish

5

è necessario cambiare per pacchetto sqlalchemy.dialects.sqlite

configurazione ( finestre = [ {"script": "main.py"}], options = {"py2exe": { "include": ["sip", "PyQt4.QtSql"], "pacchetti": [ "sqlalchemy.dialects.sqlite"] }})