2009-02-24 35 views
19

Tôi đang chơi xung quanh với một số công cụ cơ bản để làm việc trong Python trước khi tôi đi vào chế độ dev tốc độ đầy đủ. Dưới đây là chi tiết cụ thể:py2exe + sqlalchemy + sqlite vấn đề

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 xuất hiện để tạo ra các tập tin .exe một cách chính xác, nhưng khi tôi thực hiện dist/main.exe tôi có được điều này trong 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 

Tôi đã googling trái tim tôi ra, nhưng dường như không thể tìm thấy bất kỳ giải pháp cho việc này. Nếu tôi không thể làm việc này ngay bây giờ, hy vọng sử dụng Python cho dự án này sẽ bị tiêu tan và tôi sẽ bắt đầu lại bằng Ruby ... (không có gì sai với Ruby, tôi chỉ muốn sử dụng dự án này là một cách tốt để dạy cho bản thân mình Python)

Trả lời

29

bạn cần bao gồm các gói sqlalchemy.databases.sqlite

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

Tôi sẽ cung cấp cho bạn +100 nếu tôi có thể :) Cảm ơn –

+18

Đối với những người đến câu hỏi này năm sau: sqlalchemy không còn có gói tên này; thay vào đó, nó có vẻ là 'sqlalchemy.dialects.sqlite'. –

+1

Nghiện mẹo của @ Brandon, đối với những người sử dụng Firebird tôi thấy tùy chọn này hoạt động: '" gói ": [" sqlalchemy.dialects.firebird "," kinterbasdb "]' – bluish

5

bạn cần thay đổi để gói sqlalchemy.dialects.sqlite

thiết lập ( cửa sổ = [ {"script": "main.py"}], tùy chọn = {"py2exe": { "bao gồm": ["sip", "PyQt4.QtSql"], "gói": ["sqlalchemy.dialects.sqlite"] }})

Các vấn đề liên quan