前言
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 INFO: PyInstaller: 3.3.1 INFO: Python: 2.7.12 INFO: Platform: Windows-7-6.1.7601-SP1 ....... INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 4940) INFO: Building PKG (CArchive) out00-PKG.pkg completed successfully. INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run.exe INFO: checking EXE INFO: Building EXE because out00-EXE.toc is non existent INFO: Building EXE from out00-EXE.toc INFO: Appending archive to EXE d:\Program Files\Notepad++\dist\ccc.exe 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表示去掉控制台窗口显示)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Python中.py文件打包成exe可执行文件详解,包括了Python中.py文件打包成exe可执行文件详解的使用技巧和注意事项,需要的朋友参考一下 前言 最近做了几个简单的爬虫python程序,于是就想做个窗口看看效果。 首先是,窗口的话,以前没怎么接触过,就先考虑用Qt制作简单的ui。这里用前面sinanews的爬虫脚本为例,制作一个获取当天sina头条新闻的窗口。 生成py文件
问题内容: 如果我有Java源文件( .java)或类文件( .class),如何将其转换为.exe文件? 我的程序也需要安装程序。 问题答案: javapackager Java Packager工具可编译,打包并准备Java和JavaFX应用程序以进行分发。javapackager命令是命令行版本。 – Oracle文档 该实用程序随JDK一起提供。它可以生成带有该-标志的文件,等等。 Win
问题内容: 我正在寻找一种无需使用py2exe将Python程序转换为.exe文件的方法。py2exe说它需要Python 2.6,它已经过时了。有没有办法使最终用户不必安装Python就可以分发我的Python程序? 问题答案: 请理解,每个用于Python的“冻结”应用程序都不会以任何方式真正保护您的代码。每个用于独立可执行Python“程序”的打包系统都将包含许多Python库和解释器,这将
我创建了一个小应用程序来下载youtube视频,并将它们添加到我的音乐文件夹中,这样我就可以通过spotify收听它们。只要我通过IDE运行该应用程序,它就可以正常工作。我创建了一个。exe文件通过pyinstaller,但它在启动时崩溃,我尝试以管理员身份运行它,也尝试按照其他线程中的建议通过cmd运行它,但没有任何效果。 我使用以下方法创建了它: 这是python代码: 这是我得到的,我试图通
本文向大家介绍python教程之用py2exe将PY文件转成EXE文件,包括了python教程之用py2exe将PY文件转成EXE文件的使用技巧和注意事项,需要的朋友参考一下 一、简介 py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。 二、安装py2ex