Python进阶-打包程序为exe
操作系统:win7 x64
运行环境:Python3.5
安装PyInstaller
第一步:下载PyInstaller
https://github.com/pyinstaller/pyinstaller
第二步:下载源码安装
在github中打包下载,解压到电脑中,运行命令行进入此目录。
//进入子目录 bootloader
cd bootloader //build the bootloader 运行
python ./waf configure build install //重新进入根目录
cd .. //安装pyinstaller
python setup.py install
第三步:配置虚拟环境
在按快捷键win+r输入cmd进入cmd(管理员)命令行
set Path=%Path%+刚才的解压目录; #例如set Path=%Path%+D:\pyinstaller;
第四步:在命令行输入以下命令查看安装结果:
pyinstaller --version
打包程序
pyinstaller 路径\main.py -F -w -i F:/图片/1.ico -n nginx管理工具 -p D:\python\Python36\Lib\site-packages
'''
说明:红色部分是自己要打包的主程序路径;
红色部分之后的可选参数:
-F:打包为单文件可执行程序,没有此参数的话会有很多其他文件跟可执行文件在一起
-w:是否是窗口程序,不指定的话,程序运行的时候有个控制台黑窗口
-i:可执行文件的图标
-n:可执行文件的名称
-p:打包时要包含的搜索目录,一般不用指定该项
其他参数可参照pyinstaller官方文档。
'''
如果配置没有问题,敲下回车键,等待一会儿即可编译完成。在解压目录下会生成一个dist目录,在该目录里即可查看编译生成的可执行程序。
一般情况下,这个可执行文件就可以单独运行了。不过我的程序稍微复杂些,我的程序是一个flask写的web程序。直接运行的话一直报模板文件找不到的错误,把模板文件复制到同一目录下也不起作用。百度没有找到解决方法,最后Google出来了解决方案:在创建flask的app对象的时候加上这个判断即可:
from flask import Flask
import sys
import os app = None
if 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__)
接下来,再重新编译一下,把模板文件和可执行程序复制到同一目录,成功运行。
Python进阶-打包程序为exe的更多相关文章
- Python Pyinstaller 打包程序及遇到的问题总结
一.如何打包py程序 1.安装打包模块 pip install pyinstaller 2.定义保存包的路径 CMD ,CD 比方:把最终*.exe运行文件,保存到H盘 install 文件夹下. 输 ...
- python3.6利用pyinstaller模块打包程序为.exe可执行程序
步骤: 1.安装pyinstaller模块:(必须在联网情况下进行) 操作原理: python3.6已经自带了pip,所以只需要在cmd中执行 pip install pyinstaller 就可以安 ...
- vs2015 C#打包程序为exe
说明:将自己写的C#源代码打包后生成exe,直接安装在别人的电脑上运行,就像我们在网上下载别人的软件一样,很高大上,vs2015提供了打包和生成exe功能: 步骤一.打开vs2015(其他版本应该也是 ...
- python进阶--打包为exe文件
一.Python打包为EXE文件有不少方案,比较常用的有下面两种方式: 1.使用py2exe 详细介绍:http://www.cnblogs.com/jans2002/archive/2006/09/ ...
- Python不同版本打包程序为.exe文件
安装pyinstaller 测试用的python环境是3.6.2版本 下载地址 https://github.com/pyinstaller/pyinstaller/ 1.打开cmd,切到pyinst ...
- python pyinstaller 打包程序报错解决
python打包exe,各种入坑 一.安装PyInstaller 1.安装pywin32 pip命令安装:pip install pywin32(推荐) 2.安装Pyinstaller pip命令安装 ...
- pyinstall python文件打包成二进制exe文件
pycharm + python3 + win7 1 pip install pyinstall (官网) 2 准备 .py 文件 3 具体例子 from PyQt5.QtWidgets impor ...
- 利用pyinstaller将python脚本打包发布
之前写了一个小工具,将excel配置表转换为json.xml.lua等配置文件.最近在学习egret,正好需要转换配置文件,刚好就用上了.然而当我想把工具拷到工作目录时,就发愁了.之前我为了方便扩展, ...
- vs Qt mysql 打包程序 Driver not loaded Driver not loaded
vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...
随机推荐
- bzoj2521
最小生成树+最小割 ...我太zz了,没看出来全体减1是一个加1,看见后就是sb题了... 我们发现根据克鲁斯卡尔的过程,我们把边从小到大加入,如果两点已经相连就跳过,那么我们把所有小于等于这条边的边 ...
- js数值型遇0开始自动转换为8进制
如题,今天在项目更新时发现了js的这个自动转换问题,代码如下: var num = 0110; render:function(num){ var html="<a hre ...
- bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】
我是怎么想出来的-- 把种族为0的都变成-1,按位置x排升序之后,s[i]表示种族前缀和,想要取(l,r)的话就要\( s[r]-s[l-1]==0 s[r]==s[l-1] \),用一个map存每个 ...
- 个人微信号二次开发SDK协议,个人微信号二次开发api接口
通过这个API接口可以做什么? 通过我们提供的API接口您可以开发: 工作手机(如:X创,X码,XX管家等) 微信群讲课软件(如:讲课X师,一起X堂等) 微信社群管理软件(如:小X管家,微X助手等) ...
- redis的持久化的原理介绍和实现
redis提供了持久化功能——RDB和AOF.通俗的讲就是将内存中的数据写入硬盘中. RDB一定时间取存储文件,AOF默认每秒去存储历史命令,官方建议两种方式同时使用 一.RDB(Redis Data ...
- [转]Mysql之Union用法
转自:http://blog.csdn.net/ganpengjin1/article/details/9090405 MYSQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链 ...
- webpack学习汇总
一. 安装 window : 附件 --- 命令提示符 1:node -------- http://pan.baidu.com/s/1boFor3D node -v : 查看版本: npm conf ...
- elasticsearch 查询优化
首先对不必要的字段不做分词也就是不做索引,禁止内存交换 1.shard 一个Shard就是一个Lucene实例,是一个完整的搜索引擎. 分片数过多会导致检索时打开比较多的文件,多台服务器之间通讯成本加 ...
- es6数值扩展
1. 二进制和八进制表示法 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示. ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0 ...
- ORACLE 字符串补零
标准函数Lpad 可以实现左补零,但是如果多于需要长度,则会截断字符串.如下:-----------------------情况一:需要补零. SELECT LPAD ('1234' , ...