带有 pywebview 的 Flask 找不到模板

问题描述 投票:0回答:1

我正在运行一个正常运行的 Flask 网站。

模板位于正确的位置/templates

添加python webview时(https://pywebview.flowrl.com/),如:

app = Flask(__name__)
webview.create_window('Some title', app)

它可以从 PyCharm IDE 完美运行。但之后:

pyinstaller -F -w --icon=cpnits-picto.ico --name Butterfly main.py

单机找不到模板。独立运行良好,完成了它应该做的所有事情,在不使用模板时也提供输出(用于测试目的)。但它找不到模板。

我尝试过以下方法:

app = Flask(__name__, template_folder='templates')
app = Flask(__name__, static_folder='./static', template_folder='./templates') 

并向其添加各种路径。没有成功。

我做错了什么?

给出相同错误的最小化测试项目的完整代码:

from flask import Flask, render_template
import webview

app = Flask(__name__)

@app.get('/')
def index():
    return render_template('index.html')

@app.errorhandler(Exception)
def handle_error(e):
    return f'<h1>Error</h1><p>{e}</p>', 500

webview.create_window('Doei', app)
webview.start()
# pyinstaller -F -w --name TWV main.py

模板index.html位于模板目录中。

多亏了handle_error(e),错误的名称出现在网络查看器中。

python python-3.x flask jinja2
1个回答
0
投票

当我们使用 PyInstaller 和 Flask 时,这个问题很常见。打包应用程序时,您需要包含模板和静态文件夹。

注意,对于 Windows,您可能需要分号

pyinstaller -F -w --add-data "templates:templates" --name Butterfly main.py 

接下来只需使用 datas 参数在 .spec 文件中指定模板即可。

© www.soinside.com 2019 - 2024. All rights reserved.