操作系统: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的更多相关文章

  1. Python Pyinstaller 打包程序及遇到的问题总结

    一.如何打包py程序 1.安装打包模块 pip install pyinstaller 2.定义保存包的路径 CMD ,CD 比方:把最终*.exe运行文件,保存到H盘 install 文件夹下. 输 ...

  2. python3.6利用pyinstaller模块打包程序为.exe可执行程序

    步骤: 1.安装pyinstaller模块:(必须在联网情况下进行) 操作原理: python3.6已经自带了pip,所以只需要在cmd中执行 pip install pyinstaller 就可以安 ...

  3. vs2015 C#打包程序为exe

    说明:将自己写的C#源代码打包后生成exe,直接安装在别人的电脑上运行,就像我们在网上下载别人的软件一样,很高大上,vs2015提供了打包和生成exe功能: 步骤一.打开vs2015(其他版本应该也是 ...

  4. python进阶--打包为exe文件

    一.Python打包为EXE文件有不少方案,比较常用的有下面两种方式: 1.使用py2exe 详细介绍:http://www.cnblogs.com/jans2002/archive/2006/09/ ...

  5. Python不同版本打包程序为.exe文件

    安装pyinstaller 测试用的python环境是3.6.2版本 下载地址 https://github.com/pyinstaller/pyinstaller/ 1.打开cmd,切到pyinst ...

  6. python pyinstaller 打包程序报错解决

    python打包exe,各种入坑 一.安装PyInstaller 1.安装pywin32 pip命令安装:pip install pywin32(推荐) 2.安装Pyinstaller pip命令安装 ...

  7. pyinstall python文件打包成二进制exe文件

    pycharm + python3 + win7 1 pip install pyinstall  (官网) 2 准备 .py 文件 3 具体例子 from PyQt5.QtWidgets impor ...

  8. 利用pyinstaller将python脚本打包发布

    之前写了一个小工具,将excel配置表转换为json.xml.lua等配置文件.最近在学习egret,正好需要转换配置文件,刚好就用上了.然而当我想把工具拷到工作目录时,就发愁了.之前我为了方便扩展, ...

  9. vs Qt mysql 打包程序 Driver not loaded Driver not loaded

    vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...

随机推荐

  1. [ZJOI 2007] 矩阵游戏

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1059 [算法] 二分图最大匹配 时间复杂度 : O(N^3) [代码] #inclu ...

  2. MSD3458开发资料

    MSD3458HB是mstar最新推出的普通4K数字电视解决方案,不带操作系统,是一个低成本的4K方案,156脚的LQFP普通封装,开发难度低,支持HDMI2.0输入,支持4K输出.1. Suppor ...

  3. JSSDK使用步骤

    绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对应的接口权限. 引入js文件 在需要调用JS接口的页面引入如下JS文件,( ...

  4. IntelliJ IDEA 安装目录的核心文件讲解

    转自:https://blog.csdn.net/qq_35246620/article/details/61916751 首先,我们回顾一下前两篇关于 IntelliJ IDEA 的博文的内容: 在 ...

  5. (转载)基于React与Vue后,移动开源项目Weex如何定义未来

    https://www.ctolib.com/topics-106347.html vuejs+ts+webpack2框架的项目实践 https://mp.weixin.qq.com/s/p2Uc9I ...

  6. bzoj4987: Tree(树形dp)

    Description 从前有棵树. 找出K个点A1,A2,…,Ak. 使得∑dis(AiAi+1),(1<=i<=K-1)最小.   Input 第一行两个正整数n,k,表示数的顶点数和 ...

  7. 例题 5-1 STL

    Raju and Meena love to play with Marbles. They have got a lot of marbles with numbers written on the ...

  8. SpringMVC实现Action的两种方式以及与Struts2的区别

    4.程序员写的Action可采用哪两种方式? 第一.实现Controller接口第二.继承自AbstractCommandController接口 5.springmvc与struts2的区别? 第一 ...

  9. 283 Move Zeroes 移动零

    给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序.例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, ...

  10. Ray Wenderlich 的 Objective-C编码规范

    由于我正在准备模仿饿了么这个app,到时可能有些iOS开发者参与进来.这时如果每个人的Objective-C编码风格都不一样,这样不易于保持代码一致性和难以Code Review.所以我在网上搜索到  ...