我正在运行一个正常运行的 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),错误的名称出现在网络查看器中。
当我们使用 PyInstaller 和 Flask 时,这个问题很常见。打包应用程序时,您需要包含模板和静态文件夹。
注意,对于 Windows,您可能需要分号
pyinstaller -F -w --add-data "templates:templates" --name Butterfly main.py
接下来只需使用 datas 参数在 .spec 文件中指定模板即可。