python打包成pyc文件发布_Python 使用pyinstaller将py文件发布成exe程序
一. 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程序相关推荐
- python打开指定文件-python打包压缩、读取指定目录下的指定类型文件
下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch ...
- python import如何使用_Python如何import其它.py文件及其函数
如上图所示,我想在test_1.py文件中import我在lstm_1.py中定义的LstmParam和 LstmNetwork.我直接采用的是最简单的引用方法:from lstm_1 impor ...
- python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的错误
python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示'pyinstaller' 不是内部或外部命令,也不是可运行的程序或批处理文件的错误 1.使用pip安装pyin ...
- python文件打开后闪退_困扰已久的问题--python文件打开方式?为什么打开py文件会闪退!...
困扰已久的问题--python文件打开方式?为什么打开py文件会闪退! 当你安装好python时,你能够在python环境下写语句. python环境有两种措施敞开:第一种措施是找到并敞开python ...
- Python:打包生成.pyc、.pyd文件
pyd文件是什么 pyd文件类似于DLL, 一般用C/C++语言编译而成, 可用作模块导入Python程序中. pyd文件仅适用于特定版本的Python, 不同版本间互不兼容, 如Python3.8不 ...
- python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
作者:青春阳光king python实现word转成自定义格式的excel文档(解决思路和代码)支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符. 最近在开发一个答题类的小程 ...
- python 打包 .app 运行 控制台窗口_Python打包工具
1 Python打包工具 目前在windows平台上将Python程序打包成exe文件主要有三个工具. 今天将一个Tkinter写的界面程序打包成exe文件,三个工具都试了一遍,感觉PyInstall ...
- python 打包 .app 运行 控制台窗口_Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法...
windows系统下安装Pyinstaller cmd下输入指令 pip install PyInstaller Pyinstaller的使用 进入需要打包的目录下,执行打包命令 Pyinstalle ...
- python打包工具哪个好用_python打包工具比较
前一段用python写了点小工具,希望能给同事用,这里总结一下python的打包以及构建的方法. 首先是一些需要安装依赖包的方法,这也是比较推荐的正统的方法. 1.setuptools or pip ...
最新文章
- 在组件之间实现事务和异步提交事务(NET2.0)
- Apache Kafka消息格式的演变(0.7.x~0.10.x)
- 为什么C和C++难以被取代?
- 阿里妈妈品牌广告价值建模
- 【线程】线程基本函数
- 期望最大化(EM)算法真如用起来那么简单?
- 爱因斯坦是怎样学习物理的?
- C Primer Plus 第8章 字符输入/输出和输入确认 8.11 编程练习答案
- TypeScript学习(六):函数的定义及特性
- matlab 找到数组中第一个不连续点_MATLAB新手入门篇1(基础)
- php定义枚举,PHP枚举
- 那天,我无意间瞟了眼程序员的桌面……
- html设计学校网站,html学校网站
- 直方图均衡化 java,OpenCV Java 直方图均衡化
- 【FinE】EMD/EEMD方法及金融数据分解
- 一个屌丝程序猿的人生(三)
- 快速批量导出excel超链接
- 如何看计算机加密方式,电脑常见的几种加密的方法
- psql -d temp 时候的txid_current!
- wifi的 2.4G 和5G
热门文章
- 苹果真伪查询_汇课堂:再见盗版MT4!独家揭秘5种方法辨别真伪MT4
- macbook 如何卸载 homebrew
- 暗黑2 计算机中丢失,《暗黑破坏神2》部分源代码丢失不是事 暴雪照样重制
- 阿里云ECS学习资源
- 从编程小白到入门码农的五个途径
- 个人网站---利用WordPress搭建个人网站
- docker ss-pannel_docker+traefik配置mysql + panel
- 洞悉物联网发展1000问之为什么虚拟现实技术将迎来春天?
- 应用于大数据分析的工作流调度系统
- 木纹标识lisp_lisp_clojure.org