2009-02-24 81 views
19

在我進入全速開發模式之前,我正在玩弄一些基本的東西在Python中工作。以下是具體情況:py2exe + sqlalchemy + sqlite問題

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 

我一直在Google上搜出我的心,但似乎無法找到任何解決方案。如果我現在無法得到這個工作,我在這個項目中使用Python的希望將會破滅,我將重新開始使用Ruby ......(不是說Ruby有什麼問題,我只是想用這個項目作爲自學Python)的

回答

29

一個很好的方式,你需要包括sqlalchemy.databases.sqlite包

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

我會給你+100如果我能:)謝謝 – 2009-02-24 16:57:50

5
你需要改變sqlalchemy.dialects.sqlite包

設置( 窗口= [ {「script」:「main.py」}], options = {「py2exe」:{ 「includes」:[「sip」,「PyQt4.QtSql」], 「套餐」:「sqlalchemy.dialects.sqlite」] }})