[英]py2exe [ImportError: No module named sqlalchemy]
我通過'setup.py install'在win7中安裝了sqlalchemy-0.8.1
和“導入sqlalchemy”效果很好
但是當我想用py2exe打包文件時,發生錯誤
ImportError:沒有名為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,
}
}
嘗試在packages
也包含sqlalchemy
py2exe_options = {
"packages": ["sqlalchemy.databases.sqlite"]
}
顯然,我猜您對sqlite
感興趣。
通常對我有用。 將下一行放入您告訴py2exe
進行編譯的主腳本中。
import sqlalchemy
盡管通常py2exe
非常貪婪,並且包含的內容超出了所需的數量,但是有時py2exe
卻恰好相反,並且會跳過所需的軟件包,即使您將它們列出在includes
。 手動導入它們通常是可行的。 只需在其旁邊添加注釋,說明為什么導入不需要此模塊的軟件包。
這里的問題是,SQLAlchemy安裝在系統上的一個雞蛋中。 您需要將其解壓縮,或者教py2exe讀取雞蛋。 有關詳細的概述,請參見py2exe Wiki頁面ExeWithEggs 。
也就是說,最簡單的方法是以未壓縮的方式重新安裝SQLAlchemy:
easy_install --always-unzip sqlalchemy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.