Python 打包单文件可执行程序
来源:互联网 发布:js是一种什么语言 编辑:程序博客网 时间:2024/06/08 18:23
这两天用Python写了个小工具,想要在没有安装Python的机器上执行,首先想到了pyinstaller 。
pyinstaller 打包程序通常只需要一句命令即可:
1. 打开cmd控制台,将目录切换到pyinstaller安装目录,我的在D:\python\Python36\Scripts目录下;
2. 输入命令:pyinstaller D:\JetBrains\PyCharm\workspace\nginx管理工具\main.py -F -w -i F:/图片/1.ico -n nginx管理工具 -p D:\python\Python36\Lib\site-packages
说明:红色部分是自己要打包的主程序路径;
红色部分之后的可选参数:
-F:打包为单文件可执行程序,没有此参数的话会有很多其他文件跟可执行文件在一起
-w:是否是窗口程序,不指定的话,程序运行的时候有个控制台黑窗口
-i:可执行文件的图标
-n:可执行文件的名称
-p:打包时要包含的搜索目录,一般不用指定该项
其他参数可参照pyinstaller官方文档。
3. 如果配置没有问题,敲下回车键,等待一会儿即可编译完成。在Scripts目录下会生成一个dist目录,在该目录里即可查看编译生成的可执行程序,操作过程如下图:
一般情况下,这个可执行文件就可以单独运行了。不过我的程序稍微复杂些,我的程序是一个flask写的web程序。直接运行的话一直报模板文件找不到的错误,把模板文件复制到同一目录下也不起作用。百度没有找到解决方法,最后Google出来了解决方案:在创建flask的app对象的时候加上这个判断即可:
from flask import Flaskimport sysimport osapp = Noneif getattr(sys, 'frozen', False): template_folder = os.path.join(sys.executable, '..', 'templates') static_folder = os.path.join(sys.executable, '..', 'static') app = Flask(__name__, template_folder=template_folder, static_folder=static_folder)else: app = Flask(__name__)参考链接:https://stackoverflow.com/questions/32149892/flask-application-built-using-pyinstaller-not-rendering-index-html
接下来,再重新编译一下,把模板文件和可执行程序复制到同一目录,成功运行。
- Python 打包单文件可执行程序
- py2exe打包python文件成可执行程序
- 将Python.py文件打包为.exe可执行程序
- Python程序打包成.exe可执行程序
- ILMerge将winform程序打包成一个单文件可执行exe
- Python 3.6打包成EXE可执行程序
- 用freeze.py打包python程序成可执行程序(linux)
- 用PyInstaller把python程序打包成exe可执行程序
- Python可执行打包方法
- python 3.5 退回 3.4 打包成window可执行程序 py2exe
- pyinstaller将Python脚本打包成可执行程序
- python项目打包成可执行的exe文件
- QT打包.exe可执行程序
- Pyinstaller打包生成可执行程序
- Python:程序打包exe文件
- 可执行的Python程序
- Maven 打包可执行jar文件
- maven 打包可执行 jar 文件
- 未声明的标识符cbr1000000解决方案
- Codeforces 448C Painiting Fance 分治
- CI框架(4)-页面跳转
- 设置frp端口映射实现ftp服务内网穿透
- Android性能专项测试之Heap Viewer工具 --Android Device Monitor
- Python 打包单文件可执行程序
- ExtJs使用ajax跨域上传文件
- 使用location.search解析URL中?后的请求信息
- Linux查看日志方式
- 基于dubbo的分布式开发教程
- Java基础--变量和关键字
- BeetlSQL 注解
- Cygwin上使用CMake命令编译sikuli
- 数据结构之一:链表