pyinstaller打包web项目

本文分享了使用PyInstaller打包Python Tornado web项目时遇到的问题及解决方案,主要聚焦于静态文件和HTML模板的路径处理,避免使用-F参数,介绍了一种自适应路径获取方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pyinstaller打包python非web项目网上资料特别多,但就对于web项目少之又少。
今天在打包Python的tornado项目时,出现无法找到静态文件和html,但是在非打包时却运行正常,浏览器能够正常访问,打包之后就出现这个问题。
查找相关资料之后发现,-F 这个参数和templates static这两个的文件的路径问题。

-F
这个不建议在web项目打包时使用,因为这个参数虽然使整个项目只有入口文件,
但是当整个项目运行之后,它会生成一个临时文件,并且这个临时文件夹是随机命名的,放在 /tmp/随机文件夹/ 里面
有兴趣可以使用tornado试试,获取当前路径并打印即可。

下面是解决方案,用一个获取当前文件夹路径的方法,获取templates static的路径即可,使得项目路径可以随时随地的变化,不受其他因素影响。

def src_path():
	if hasattr(sys, '_MEIPASS'):
	    base_dir = sys._MEIPASS
	else:
		base_dir = os.path.abspath('.')
	return base_dir
剩下的在tornado或者其他Python web项目的静态路径调用该方法就行。

templates static需要放到打包之后的dist下面,或者根据自己项目的位置放进去
希望能交流更多技术,关注小白的微信公众号吧。
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值