2009-02-24 14 views
19

Ich spiele herum und bekomme einige grundlegende Dinge in Python, bevor ich in den Full-Speed-Dev-Modus gehe. Hier sind die Besonderheiten: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 richtig angezeigt wird die EXE-Datei zu erzeugen, aber wenn ich dist/main.exe ausführen bekomme ich diese in der 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 

ich habe mein Herz wurde googeln, aber kann nicht scheinen, keine Lösungen dafür zu finden. Wenn ich das jetzt nicht zum Laufen bringen kann, werden meine Hoffnungen, Python für dieses Projekt zu verwenden, zerstört sein und ich werde anfangen, Ruby zu benutzen ... (nicht, dass irgendetwas mit Ruby nicht stimmt, ich wollte dieses Projekt nur als ein guter Weg, um mich Python)

Antwort

29

zu lehren, müssen Sie das Paket sqlalchemy.databases.sqlite sqlalchemy.dialects.sqlite Paket ändern

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

Ich würde Ihnen +100, wenn ich später diejenigen Dank –

+18

Für Ankunft am Diese Frage Jahren :) könnte: sqlalchemy nicht mehr ein Paket mit dieser Name; stattdessen scheint es "sqlalchemy.dialects.sqlite" zu sein. –

+1

In Abhängigkeit von @ Brandon Tipp, für diejenigen mit Firebird fand ich diese Option arbeiten: '" Pakete ": [" sqlalchemy.dialects.firebird "," kinterbasdb "]' – bluish

5

Sie müssen schließen

Setup ( Fenster = [ {"Skript": "main.py"}], Optionen = {"py2exe": { "enthält": ["sip", "PyQt4.QtSql"], „Pakete“: [ „sqlalchemy.dialects.sqlite“] }})