一. Pyinstaller简介

Python是一个脚本语言,被解释器解释执行。它的发布方式:

.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的)

.pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。

可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉Ta即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,...)。

本文主要就是介绍最后一种方式,.py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式,本文重点介绍PyInstaller,

PyInstaller的原理简介

PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效率,好处就是在运行者的机器上不用安装python和你的脚本依赖的库。在Linux操作系统下,它主要用的binutil工具包里面的ldd和objdump命令。

PyInstaller输入你指定的的脚本,首先分析脚本所依赖的其他脚本,然后去查找,复制,把所有相关的脚本收集起来,包括Python解析器,然后把这些文件放在一个目录下,或者打包进一个可执行文件里面。

可以直接发布输出的整个文件夹里面的文件,或者生成的可执行文件。你只需要告诉用户,你的应用App是自我包含的,不需要安装其他包,或某个版本的Python,就可以直接运行了。

需要注意的是,PyInstaller打包的执行文件,只能在和打包机器系统同样的环境下。也就是说,不具备可移植性,若需要在不同系统上运行,就必须针对该平台进行打包。

pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行

可运行在Windows,Mac和Linux操作系统下。

但它不是跨编译的,也就是说在Windows下用PyInstaller生成的exe只能运行在Windows下,在Linux下生成的只能运行在Linux下。

二.pyinstaller在windows下的安装

使用命令pip install pyinstaller即可

在windows下,pyinstaller需要PyWin32的支持。当用pip安装pyinstaller时未找到PyWin32,会自动安装pypiwin32

出现Successfully installed pyinstaller-3.1.1 pypiwin32-219即表示安装成功

三.打包

打包的app里并不包含任何源码,但将脚本的.pyc文件打包了。

基本语法:

pyinstaller options myscript.py

常用参数:

-F    制作独立的可执行程序

-D    制作出的档案存放在同一个文件夹下(默认值)

-K    包含TCL/TK(对于使用了TK的,最好加上这个选项,否则在未安装TK的电脑上无法运行)

-w     制作窗口程序

-c    制作命令行程序(默认)

-X    制作使用UPX压缩过的可执行程序(推荐使用这个选项,需要下载UPX包,解压后upx.exe放在Python(非PyInstaller)安装目录下,下载upx308w.zip)

-o DIR  指定输出SPEC文件路径(这也决定了最后输出的exe文件路径)

--icon=[ICO文件路径] 指定程序图标

-v [指定文件] 指定程序版本信息

-n [指定程序名] 指定程序名称

可以使用 pyinstaller -h 来查看参数说明

样例:

将cmd的目录切换至(命令:cd 文件路径(注意空格))需要打包的py文件目录下:

并输入代码,格式为使用命令:pyinstaller -F 文件名(带后缀py):

pyinstaller -F test.py

回车后,代码迅速操作,直到操作结束。

返回目标文件目录,

打包好的exe文件,在同目录的dist文件中, exe文件已生成:

由此,py文件打包好为exe文件。

pyinstaller 改变生成exe程序的图标的样例:

pyinstaller -F --icon=my.ico test.py

my.ico 是一个图标名,和当前的test.py文件在同一个目录下

python打包成pyc文件发布_Python 使用pyinstaller将py文件发布成exe程序相关推荐

  1. python打开指定文件-python打包压缩、读取指定目录下的指定类型文件

    下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch ...

  2. python import如何使用_Python如何import其它.py文件及其函数

    ​ 如上图所示,我想在test_1.py文件中import我在lstm_1.py中定义的LstmParam和 LstmNetwork.我直接采用的是最简单的引用方法:from lstm_1 impor ...

  3. python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的错误

    python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示'pyinstaller' 不是内部或外部命令,也不是可运行的程序或批处理文件的错误 1.使用pip安装pyin ...

  4. python文件打开后闪退_困扰已久的问题--python文件打开方式?为什么打开py文件会闪退!...

    困扰已久的问题--python文件打开方式?为什么打开py文件会闪退! 当你安装好python时,你能够在python环境下写语句. python环境有两种措施敞开:第一种措施是找到并敞开python ...

  5. Python:打包生成.pyc、.pyd文件

    pyd文件是什么 pyd文件类似于DLL, 一般用C/C++语言编译而成, 可用作模块导入Python程序中. pyd文件仅适用于特定版本的Python, 不同版本间互不兼容, 如Python3.8不 ...

  6. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel

    作者:青春阳光king python实现word转成自定义格式的excel文档(解决思路和代码)支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符. 最近在开发一个答题类的小程 ...

  7. python 打包 .app 运行 控制台窗口_Python打包工具

    1 Python打包工具 目前在windows平台上将Python程序打包成exe文件主要有三个工具. 今天将一个Tkinter写的界面程序打包成exe文件,三个工具都试了一遍,感觉PyInstall ...

  8. python 打包 .app 运行 控制台窗口_Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法...

    windows系统下安装Pyinstaller cmd下输入指令 pip install PyInstaller Pyinstaller的使用 进入需要打包的目录下,执行打包命令 Pyinstalle ...

  9. python打包工具哪个好用_python打包工具比较

    前一段用python写了点小工具,希望能给同事用,这里总结一下python的打包以及构建的方法. 首先是一些需要安装依赖包的方法,这也是比较推荐的正统的方法. 1.setuptools or pip ...

最新文章

  1. 在组件之间实现事务和异步提交事务(NET2.0)
  2. Apache Kafka消息格式的演变(0.7.x~0.10.x)
  3. 为什么C和C++难以被取代?
  4. 阿里妈妈品牌广告价值建模
  5. 【线程】线程基本函数
  6. 期望最大化(EM)算法真如用起来那么简单?
  7. 爱因斯坦是怎样学习物理的?
  8. C Primer Plus 第8章 字符输入/输出和输入确认 8.11 编程练习答案
  9. TypeScript学习(六):函数的定义及特性
  10. matlab 找到数组中第一个不连续点_MATLAB新手入门篇1(基础)
  11. php定义枚举,PHP枚举
  12. 那天,我无意间瞟了眼程序员的桌面……
  13. html设计学校网站,html学校网站
  14. 直方图均衡化 java,OpenCV Java 直方图均衡化
  15. 【FinE】EMD/EEMD方法及金融数据分解
  16. 一个屌丝程序猿的人生(三)
  17. 快速批量导出excel超链接
  18. 如何看计算机加密方式,电脑常见的几种加密的方法
  19. psql -d temp 时候的txid_current!
  20. wifi的 2.4G 和5G

热门文章

  1. 苹果真伪查询_汇课堂:再见盗版MT4!独家揭秘5种方法辨别真伪MT4
  2. macbook 如何卸载 homebrew
  3. 暗黑2 计算机中丢失,《暗黑破坏神2》部分源代码丢失不是事 暴雪照样重制
  4. 阿里云ECS学习资源
  5. 从编程小白到入门码农的五个途径
  6. 个人网站---利用WordPress搭建个人网站
  7. docker ss-pannel_docker+traefik配置mysql + panel
  8. 洞悉物联网发展1000问之为什么虚拟现实技术将迎来春天?
  9. 应用于大数据分析的工作流调度系统
  10. 木纹标识lisp_lisp_clojure.org