使用Pyinstaller转换.py文件为.exe可执行程序
pyinstaller能够在Windows、Linux等操作系统下将Python脚本打包成可直接运行程序。使Python脚本可以在没有安装Python的环境中直接运行,方便共享。
开发环境
python 2.7.12 + Windows7
注意事项
1、待转换的.py文件绝对路径最好不要包含中文字符。容易出现一些莫名其妙的问题。
2、python中需要有.py文件中用到的第三方库。否则在转换后的.exe文件中会出现不符合预期的结果。
pyinstaller安装步骤
1、配置pip镜像源。pip配置方法参考pip配置和安装第三方模块。如果已经配置,跳过。
2、打开cmd命令行窗口,输入pip install pyinstaller,安装pyinstaller库。
C:\Users\Administrator>pip install pyinstaller
Collecting pyinstaller
Downloading http://pypi.doubanio.com/packages/3c/86/909a8c35c5471919b3854c01f43843d9b5aed0e9948b63e560010f7f3429/PyIns
taller-3.3.1.tar.gz (3.5MB)
100% |████████████████████████████████| 3.5MB 112kB/s
Requirement already satisfied: setuptools in c:\python27\lib\site-packages (from pyinstaller)
Requirement already satisfied: pefile>=2017.8.1 in c:\python27\lib\site-packages (from pyinstaller)
Requirement already satisfied: macholib>=1.8 in c:\python27\lib\site-packages (from pyinstaller)
Requirement already satisfied: dis3 in c:\python27\lib\site-packages (from pyinstaller)
Requirement already satisfied: future in c:\python27\lib\site-packages (from pyinstaller)
Requirement already satisfied: altgraph>=0.15 in c:\python27\lib\site-packages (from macholib>=1.8->pyinstaller)
Installing collected packages: pyinstaller
Running setup.py install for pyinstaller ... done
Successfully installed pyinstaller-3.3.1
3、确认pyinstaller安装结果,位于c:\Python27\Scripts路径下。执行where pyinstaller查看
C:\Users>where pyinstaller
c:\Python27\Scripts\pyinstaller.exe
pyinstaller基本语法
pyinstaller [options] script
options常用选项说明:
-F,-onefile: 表示生成单个可执行文件,常用。
-w, -windowed, -noconsole:表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标。注意:图片后缀必须是.ico
-c,console,-nowindowed:使用控制台,无窗口(默认)
-D,-onedir:创建一个目录,包含EXE文件,但会依赖很多文件(默认选项)
基本实例:pyinstaller -F myscript.py。
pyinstaller更多语法见官网说明:https://pyinstaller.readthedocs.io/en/stable/usage.html
pyinstaller原理简介
pyinstaller其实就是把python解释器和脚本打包成一个可执行文件,和编译成真正的机器码是完全两回事。所以打包不一定会提高运行效率,可能会降低运行效率,但是好处是在运行者机器上不用安装python和脚本所依赖的库。
输入指定的脚本后,首先pyinstaller会分析该脚本所依赖的其他依赖,然后进行查找、复制,把所有相关的依赖都收集起来并惊醒加密处理,包括python解释器,最后把这些文件放在一个目录下,或者打包到一个可执行文件。然后就可以直接运行所生成的可执行文件。
需要注意的是,使用pyinstaller打包生成的可执行文件,只能再和打包机器系统相同的环境下运行。32位python环境打包的程序可以运行在32/64位windows系统上。64位python环境打包的程序只能运行在64位windows系统上。所以如果想打包程序的话,建议使用32位python环境打包。
pyinstaller使用实例
1、确认待转换的.py文件可正确运行,不存在语法错误。如ccc.py
2、执行pyinstaller -F ${Python脚本名}完成文件转换。.exe文件生成的绝对路径会在倒数第二行显示,通常位于当前目录下dist所在目录下。转换后的.exe文件名与python文件名相同。如下图所示
d:\Program Files\Notepad++>pyinstaller -F ccc.py
213 INFO: PyInstaller: 3.3.1
226 INFO: Python: 2.7.12
237 INFO: Platform: Windows-7-6.1.7601-SP1
.......
8136 INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 4940)
10315 INFO: Building PKG (CArchive) out00-PKG.pkg completed successfully.
10341 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run.exe
10355 INFO: checking EXE
10369 INFO: Building EXE because out00-EXE.toc is non existent
10386 INFO: Building EXE from out00-EXE.toc
10401 INFO: Appending archive to EXE d:\Program Files\Notepad++\dist\ccc.exe
10432 INFO: Building EXE from out00-EXE.toc completed successfully.
FAQs
1、如果Python脚本使用到了第三方库,如何打包?
方法一:将第三方库对应的包复制到待打包python脚本的同目录下,再执行打包命令。
方法二:pyinstaller.exe -F 路径\文件名.py 路径\文件名.py
2、我的python脚本主要是命令行输出,但是程序执行完就退出无法查看相关信息,如何处理?
在python脚本最后一行添加命令:os.system('pause') 或者 raw_input('Press enter any key to exit...')
3、 我想给我的打包后的执行程序换个图标,如何处理?
使用参数-i。如命令:pyinstaller -F -i tupian\qq.ico ccc.py。文件后缀名必须是.ico
4、程序运行出现CMD窗口,如何去除?

带上参数-w即可。pyinstaller.exe -F call_login.py -w (-w表示去掉控制台窗口显示)
使用Pyinstaller转换.py文件为.exe可执行程序的更多相关文章
- pyinstaller打包py文件成exe文件时,出现ImportError: No module named 'pefile'错误解决办法!
首先pyinstaller的安装与使用详见如下链接: 安装完成之后,命令行中输入pyinstaller之后,结果如下: ImportError: No module named 'pefile' 缺少 ...
- pyinstaller打包.py程序为.exe操作指南
pyinstaller打包.py程序为.exe操作指南 20190526内容纲要: 1.pyinstaller安装 2.程序封装 3.可执行程序 0 前言 今天第一次试试将一个py程序封装成一个.ex ...
- pyinstaller打包python文件成exe(原理.安装.问题)
py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...
- python预课04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习
列表,元组 #list l1 = [1, 2, 3, '高弟弟'] #定义一个列表 #增 l1.append("DSB") #最后增加"DSB"的元素 #删 l ...
- 【PyInstaller安装及使用】将py程序转换成exe可执行程序
1 配置所需的环境 平台:windows7 64位,已经安装了python(x,y) 若未安装python环境,请自行安装python2.7或者其他版本,Python安装完成以后,需要将Python ...
- pyinstaller将py文件转成exe格式
首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行 1. 直接在命令行用pip安装 pyinstaller pip install pyinstaller 2. 下 ...
- 【Python学习】使用Pyinstaller将py文件导出为exe文件
PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,但是它不是跨编译的,也就是说在Windows下用PyInstaller生成的exe只能运行在Windows下,在 ...
- 使用PyInstaller将.py文件打包并生成Windows下可执行的.exe文件
最近要使用Qt写一个简单的GUI程序,因此使用了PyQt5来加快开发,使用PyQt5生成可执行的程序时,在Windows操作系统下可以使用pyinstaller库将.py文件及其相关依赖生成为.exe ...
- py文件转换为exe文件
遇到这个问题时在网上找了一会资料,很多博客的方法很旧了,介绍一种最简单的,pyinstaller. 时间比较早的资料还在介绍如何安装pip(python的包管理器),其实python中已经自带pip了 ...
随机推荐
- NodeJS (npm) 学习笔记
零, npm是nodeJS的包管理器,下载nodeJS后会自动安装好npm. 一,windows下安装 nodeJS并配置(以及angular安装相关问题) 1, 下载安装 https://nodej ...
- mount的几个选项
一.mount -o noatime表示在读文件时不去更改文件的access time属性了,所以该选项会提升mount操作的执行效率. 二.mount --bind:等同于 -o bind可用于挂载 ...
- 关于 this 关键字的使用
package com.jsti.guiyang_01; /* 自定义Phone类 this关键字 代表当前正在调用这个方法(访问成员变量)的对象(实例) 1.在setxxx方法中用来区分成员变量和局 ...
- python+unittest 控制用例的执行顺序
unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...
- Hbase的常见shell操作
1.带namespace的:https://blog.csdn.net/opensure/article/details/46470969 2.http://www.cnblogs.com/xing9 ...
- unigui+fastReport实现web打印方案
近日单位需要用到会议通知单的打印功能,故引出篇. unigui是delphi环境下快速开发web应用的优秀工具,不再赘述,下面直接记录使用搭配使用,基本逻辑就是: unigui实现数据录入和浏览的we ...
- 【Vue】谈Vue的依赖追踪系统 ——搞懂methods watch和compute的区别和联系
从作用机制和性质上看待methods,watch和computed的关系 图片标题[原创]:<他三个是啥子关系呢?> 首先要说,methods,watch和computed都是以函数为基础 ...
- FFmpeg 学习(二):Mac下安装FFmpeg
一.安装ffmpeg 分为两种安装方式: 1. 命令行安装 brew install ffmpeg 2. 下载压缩包安装 去 http://evermeet.cx/ffmpeg/ 下载7z压缩包,解压 ...
- Javascript高级编程学习笔记(17)—— 引用类型(6)基本包装类
基本包装类 基本包装类这个概念或许有的小伙伴没有听说过 但是小伙伴们有没有想过,为什么基本数据类型的实例也有方法呢? 其实这些方法都来自基本包装类型 这是JS为了方便操作基础数据类型而创建的特殊引用类 ...
- Win10下python不同版本同时安装并解决pip共存问题
特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似. 使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下 ...