python代码(flask框架B/S)打包成exe可执行文件的注意事项

打包exe的工具:pyinstaller 4.2

python版本:3.6

打包系统环境:window10

原有系统介绍: flask开发的一个web站点,使用nginx作为web服务器,默认访问静态资源,url中带/api前缀的是访问后端接口(因为部分采用前后端分离VUE)。

 【注意点1】                        

生成exe的命令:pyinstaller.exe -F -p C:\Users\用户名\AppData\Local\Programs\Python\Python36\Lib\site-packages -p D:\test\backend\app -p D:\test\backend\lib -p D:\test\backend\app\beans run.py

注意:网上搜索到的资料很多都是用英文分号分隔(;)的,可能是因为pyinstaller版本问题。4.2的版本指定多个环境位置,请采用上述方式。

至于需要加哪几个位置(-p),需要根据生成后的exe文件运行提示,再进行添加;只要提示找不到哪个包,那就加上这个包所在路径即可

【注意点2】

代码中涉及到目录的,都需要注意采用相对路径,否则会报大量的错误。

import os
import sys

if getattr(sys, 'frozen', False):
    ROOT_PATH = os.path.dirname(sys.executable)
elif __file__:
    ROOT_PATH = os.path.dirname(__file__)

【注意点3】

windows环境下路径中的 / 需要修改成 \\  ;这个是系统原因

可以将代码中涉及到路径的都采用  os.sep  来代替,比如

【注意点4】

模板文件拷贝到dist目录,但是运行exe文件后,发现还是提示找不到模板,这时需要修改模板路径为绝对路径

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

修改为

app = Flask(__name__, template_folder=ROOT_PATH + os.sep + 'templates')

【注意点5】

请求的接口中如果带特殊前缀的,比如/api需要都去掉,因为不走nginx反向代理了。

【注意点6】

代码中涉及路径的也全部改掉。

【注意点7】

本地测试没有问题后,一定要将打包完的文件拷贝到其它机器上(没有python环境的),运行测试,会出各种乱七八糟的问题。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扬子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值