通过 cx_freeze 冻结带有烧瓶和烧瓶记录的应用程序

Freeze an app with flask and flask-logging via cx_freeze

我有一个带有 Flask 和 Flask-Logging 的应用程序,我一直想用 cx_Freeze 将其变成 Windows 可执行文件,但每当我尝试冻结它时,运行 生成的可执行文件,缺少来自 flask-logging 的 flask.ext.logging

Setup.py

from cx_Freeze import setup, Executable

# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = ["flask", "psutil"], excludes = [])

base = 'Console'

executables = [
    Executable('app.py', base=base, targetName = 'test.exe')
]

setup(name='FlaskExample',
      version = '0.5',
      description = 'Example Flask App',
      options = dict(build_exe = buildOptions),
      executables = executables)

我试过在包中指定flask.ext.logging,但还是不行。我错过了什么?

flask.ext 是一种已弃用的技术,用于迁移旧的 Flask 应用程序。导入 Flask 扩展的正确方法是直接从它们导入。

from flask_logging import Filter

flask.ext 在运行时对路径进行了一些巧妙的检查,这可能是 cx_freeze 没有想到的。