簡體   English   中英

py2exe [導入錯誤:沒有名為sqlalchemy的模塊]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM