pyintaller 打包flask_bootstrap时,会有找不到bootstrap/wtf.html报错的问题,解决方法如下
2018-02-01 17:04
471 查看
之前在网上搜了好多都是说bootstrap没有初始化,但我的程序是正常运行的,只是打包后就报错,解决方法是在spec文件中将flask_bootstrap中的bootstrap文件夹直接打包到templates文件夹下,spec文件内容如下
from PyInstaller.building.build_main import Analysis, PYZ, EXE, COLLECT, BUNDLE, TOC
block_cipher = None
added_files = [
('.\\templates', 'templates'),
('.\\static', 'static'),
('D:\\Python\\Python27\\Lib\\site-packages\\flask_bootstrap\\templates\\bootstrap','templates\\bootstrap')
]
a = Analysis(['start.py'],
pathex=['D:\\workspace\\kutiku'],
hiddenimports=[],
binaries=[],
datas=added_files,
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='kutiku',
debug=False,
strip=False,
upx=True,
console=True)
打包后程序运行起来会在tmp目录下生成MEIXXX的文件夹,里面就是你的templates文件夹以及其他的文件夹,在你的启动代码中指定下打包后文件的生成目录,这样,程序就知道去哪里找文件了,代码如下
if getattr(sys, 'frozen', False):
template_folder = os.path.join(sys._MEIPASS, 'templates')
static_folder = os.path.join(sys._MEIPASS, 'static')
app = Flask(__name__, template_folder=template_folder,static_folder=static_folder)
else:
app = Flask(__name__)
问题就解决了!!!
from PyInstaller.building.build_main import Analysis, PYZ, EXE, COLLECT, BUNDLE, TOC
block_cipher = None
added_files = [
('.\\templates', 'templates'),
('.\\static', 'static'),
('D:\\Python\\Python27\\Lib\\site-packages\\flask_bootstrap\\templates\\bootstrap','templates\\bootstrap')
]
a = Analysis(['start.py'],
pathex=['D:\\workspace\\kutiku'],
hiddenimports=[],
binaries=[],
datas=added_files,
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='kutiku',
debug=False,
strip=False,
upx=True,
console=True)
打包后程序运行起来会在tmp目录下生成MEIXXX的文件夹,里面就是你的templates文件夹以及其他的文件夹,在你的启动代码中指定下打包后文件的生成目录,这样,程序就知道去哪里找文件了,代码如下
if getattr(sys, 'frozen', False):
template_folder = os.path.join(sys._MEIPASS, 'templates')
static_folder = os.path.join(sys._MEIPASS, 'static')
app = Flask(__name__, template_folder=template_folder,static_folder=static_folder)
else:
app = Flask(__name__)
问题就解决了!!!
相关文章推荐
- flask-wtf表单中PasswordField无法回传显示密码问题解决方法
- jenkins 用 Maven 打包出现 找不到符号 问题的解决方法
- 使用ASIHTTPRequest xcode编译提示找不到"libxml/HTMLparser.h",解决方法如下
- 关于MOSS创建SSP时出现找不到 Windows NT 用戶或組 "'域\administrator"问题的解决方法
- 解决 找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)”。
- 解决使用MasterPage后,Page.FindControl方法找不到指定控件的问题
- windows命令行下随时随地调用csc编译器的方法(解决dos下编译.net程序找不到CSC的问题)
- C#中关于从剪贴板中读取HTML格式含中文字符会出现的问题和解决方法
- 关于html,htm文件图标问题解决方法
- ClassLoader 转自---http://www.webspherechina.net/club/thread-1588-1-1.html WebSphere JVM classloader 内存问题的解决方法 --作者:好运北京
- 在Eclipse中配置SDK路径的时出现找不到adb.exe的提示,解决方法如下!
- C#从剪贴板获取HTML格式内容含中文字符出现的问题和解决方法
- 编译.NET项目提示“找不到系统命名空间,请添加系统组件的引用”问题的解决方法(该组件已被该项目正确引用)
- 关于jquery append() html时的小问题的解决方法
- Office2003找不到SKU011.CAB问题解决方法
- .Net程序打包安装与卸载制作 系列问题解决方法
- 解决Office2003找不到SKU011.CAB问题方法
- [网络收集]解决在母版页中使用Page.FindControl方法找不到指定控件的问题
- 安装IE8在控制面板里面删除之后进不去桌面,提示找不到-IESetting.dll 解决办法(解决IE8卸载不了的问题,返回IE7 ,返回IE6),从IE8回到IE7的方法.
- 解决进系统【加载C:/windows/system32/*.dl出错,找不到指定模块】之类问题的方法