一.介绍

1 Python是解释型语言,我们写的Flask或Django项目如果部署,
2 源码可能会泄露,因此我们可以把项目打包成exe,来保护源码
3 需要用到工具:
4     -pyinstaller:把python项目打包成不同平台的可执行文件
5 
6     -nsis:NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下
7 安装程序制作程序,它提供了安装、卸载、系统设置、文件解压缩等功能。
8 这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的

 

二.安装以及参数说明

 1 1.打包整体命令:pyinstaller -D(参数) --add-data (添加额外的数据文件到打包的可执行文件中)"./resource;resource/" (目标路径)prewd.py(源文件的名称)
 2 
 3 2.可以看到项目路径下 多了:
 4   build文件夹     用于构建可执行文件
 5   dist文件夹      包含应用程序的所有依赖项和可执行文件/这里包含exe执行文件
 6 
 7 3.如果项目代码里面涉及到一些不是.py文件(比如静态文件),但是项目里面又用到了这些静态文件
 8     # pyinstaller模块是无法打包   这些非.py文件的!!!  
 9     那么你直接打包命令执行后,运行.exe 是会有问题的, 打包的二进制文件里,会找不到该静态文件的
10 
11     解决办法1:直接把这些静态房间放到dist/文件名/里面
12    
13     解决办法2:要把.spec配置文件修改一下才行   然后再运行 pyinstaller .\.spec 重新打包
14     datas=[('templates/index.html', 'templates'), ('static/style.css', 'static')],
15     datas=[('config.json', '.')],
16     # 元祖里第一个元素代表你希望在打包时包含的数据文件名称,该文件放到哪个目录下
17     # 打包完就可以看到dist/_internal/目录下有了对应的静态文件了!!!
18     # 就是把对应的 非py文件,也放到 dist/_internal/目录下   
19     # 这样当二进制的run.exe运行时,就能找到这些非py文件了
20     

pyinstaller的参数

 

 

flask项目打包过程中,报错解决

 

 缺少某个文件,但是在相对于的文件路径下找不到,其实这是缺少依赖,找到对应的依赖然后放在dist里即可

 

posted on 2024-12-23 13:11  认真的六六  阅读(549)  评论(0)    收藏  举报