cx_freeze在windows下没有看到sqlalchemy?

时间:2013-12-15 00:51:18

标签: python python-3.x sqlalchemy cx-freeze

我正在使用安装了sqlalchemy的Python 3.2 32位。我使用sqlalchemy在Python中编写了非常简单的脚本。我正在那样导入它:

from sqlalchemy import *
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

脚本运行正常。我想用cx_freeze创建.exe。所以我写了以下setup.py文件:

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "dev_db",
        version = "1.0",
        description = "Device Database System",
        options = {"build_exe": build_exe_options},
        executables = [Executable("./dev_db/db_main/db_init.py", base=base)])

(该应用程序是包含其他应用程序的更大包的一部分)

启动setup.py build后一切正常,除了:

? sqlalchemy imported from db_init__main__, dev_db.common.alchemy_base, dev_db.common.devinfo_io, dev_db.common.event_io
? sqlalchemy.engine.reflection imported from db_init__main__
? sqlalchemy.ext.declarative imported from dev_db.common.alchemy_base, dev_db.common.event_io
? sqlalchemy.ext.hybrid imported from dev_db.common.devinfo_io, dev_db.common.event_io
? sqlalchemy.orm imported from db_init__main__, dev_db.common.alchemy_base, dev_db.common.devinfo_io

.exe已创建,但无法正常工作 - 似乎cx_freeze无法看到明显安装的sqlalchemy!

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

cx_Freeze似乎与作为鸡蛋安装的软件包有一些问题(可能是鸡蛋是zip文件的地方)。打开以.egg结尾的文件夹或zip文件,并将包 - 本例中的sqlalchemy文件夹 - 复制到site-packages目录中。然后重新冻结它,cx_Freeze应该找到包。