2013-05-22 105 views
1

我在WIN7安裝的SQLAlchemy-0.8.1通過 '的setup.py安裝'py2exe [導入錯誤:沒有模塊名爲SQLAlchemy的]

和 「進口SQLAlchemy的」 效果很好

但是,當我想包我與py2exe文件,錯誤發生

導入錯誤:沒有名爲SQLAlchemy的

這裏是我的setup.py的一部分模塊

import os 
import glob 
from distutils.core import setup 
import py2exe 

includes = ['encodings', 'encodings.*', 'glob', 
      'sqlite3', 'wx.lib.scrolledpanel', 
      'wx.richtext', 'wx.lib.mixins.listctrl', 
      'wx.lib.sized_controls', 'sqlalchemy'] 

excludes = ['pyreadline', 'difflib', 'doctest', 
      'tarfile', 'pickletools', 'optparse', 
      'pickle', 'cookielib', 'urllib', 
      'Tkinter', 'email', 'tcl', 'Tkconstants' ] 

py2exe_options = { 
    'build': {'build_base': 'dist/'}, 
    'py2exe': { 
     'compressed': 1, 
     'dll_excludes': ['msvcp90.dll', 'w9xpopen.exe'], 
     'optimize': 2, 
     'includes': includes, 
     'excludes': excludes, 
     'dist_dir': 'dist', 
     'ascii': False, 
     } 
    } 
+0

會發生錯誤? –

+0

是的,你有什麼想法嗎? – SAGA

+0

驗證sqlalchemy未安裝爲壓縮蛋。 –

回答

0

嘗試包括sqlalchemypackages

py2exe_options = { 
    "packages": ["sqlalchemy.databases.sqlite"] 
} 

很明顯,我猜你感興趣的sqlite

+0

它與sqlite無關。這是sqlalchemy安裝的方式。但是,謝謝! – SAGA

0

這通常適用於我。將下一行放入主腳本中,告訴py2exe進行編譯。

import sqlalchemy 

即使在一般py2exe是相當貪婪和包括比需要多得多,有時卻正好相反,需要跳過包儘管你列出他們includes的事實。手動導入它們通常是可行的。只需在下面註釋它爲什麼導入您在本模塊中不需要的軟件包。

0

這裏的問題是SQLAlchemy安裝在您系統上的一個蛋中;你需要將它解壓縮,或者教py2exe讀取蛋。有關詳細概述,請參見the py2exe wiki page ExeWithEggs

這就是說,最簡單的方法是重新安裝SQLAlchemy的解壓:

當你運行`setup.py py2exe`
easy_install --always-unzip sqlalchemy 
相關問題