一.介绍
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里即可
标签:文件,exe,dist,py,命令,pyinstaller,打包 From: https://www.cnblogs.com/liuliu1/p/18623745