将Python文件打包成.EXE可执行文件的方法
作者:温而新 发布时间:2023-05-26 20:25:50
利用Python写了一个小脚本想要传给使用Windows但没有装Python的朋友执行,这时候就可以利用将档案包装成exe档案,让没有Python的朋友也可以执行。本篇将介绍利用套件「PyInstaller」制作exe档。
1|0安装方法
#安装pyinstaller
pip install pyinstaller
#安装依赖
pip install pywin32-ctypes
2|0常用参数介绍
pyinstaller -h来查看参数
-F打包成一个exe文件
-i图标路径
-w使用视窗,无控制台
-c使用控制台,无视窗
-D创建一个目录,包含exe以及其他一些依赖性文件
编译文件时,我们通常使用如下命令:
pyinstaller -F -w -i favo.ico main.py
3|0静态文件
对于python所依赖的图片,config.yaml等静态文件,pyinstall不会自动打包,需要手动在main.py(所需要打包的入口文件)的相同目录中寻找main.spec,修改datas依赖,才可以自动打包到exe的相同目录下,然后执行即可
datas是一个数组,每个子项是一个tuple,其中tuple的第一个参数是你要打包的源路径,第二个参数是打包后的名字
# -*- mode: python -*-
block_cipher = None
a = Analysis(['ui.py'],
pathex=['C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test'],
binaries=[],
datas=[('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\images','images'),('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\question.yaml','question.yaml')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
然后执行:
pyinstaller -F main.spec
4|0示例
如下图所示,我们编写一个输出helow pyinstaller的Python程序,并利用input()使程序可以暂时停在输出画面。
print('helow pyinstaller')
input('please wait:')
编译python为exe,编译过程中会自动安装相关依赖
pyinstaller -F hello.py
编译过程中会产生如下输出:
…
6942 INFO: checking PY
6944 INFO: Building because toc changed
6944 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz
7559 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz completed successfully.
7568 INFO: checking PKG
7569 INFO: Building because toc changed
7569 INFO: Building PKG(CArchive)PKG-00.pkg
9407 INFO: Building PKG(CArchive)PKG-00.pkg completed successfully.
9409 INFO: Bootloader c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe9409 INFO: checking EXE
9411 INFO: Building because toc changed
9411 INFO: Building EXE from EXE-00.toc
9412 INFO: Appending archive to EXE C:\Users\user\Desktop\test\dist\test.exe
9455 INFO: Building EXE from EXE-00.toc completed successfully.
通过输出可以看出pyinstaller进行了如下操作:
会先建立一个hello.spec
建立「build」文件夹
建立log纪录档与工作档案于文件夹build中
建立「dist」文件夹
建立执行档(.exe)在「dist」文件夹
4|1注意事项
执行档案可在win8/win10,64位的电脑运行,但win7 x64和其余所有32位失败,会提示不兼容,若要能32位与64位皆可运行,就要在Python 32位的环境下编译PyInstaller打包exe,才能在32位与64位成功。
来源:https://www.cnblogs.com/peng104/p/11255074.html


猜你喜欢
- 部署 Jenkins请提前在 Linux 上安装 Docker,在 Linux 中,我们使用 Docker 启动 Jenkins,这样可以避
- 假如您在安装SQL Server 2005时出现计数器错误,在搜索过所有的方法都不适用的情况下可以采用以下方法:将4个计数器删除:(如果没有
- 一、python图形界面tk之滚动文本框的实现示例使用python的tkinter库实现滚动文本框的方式,目前我知道的有两种,一
- 本文实例讲述了python进程池实现的多进程文件夹copy器。分享给大家供大家参考,具体如下:应用:文件夹copy器(多进程版)import
- 前期准备订单测试表CREATE TABLE `trade` ( `id` VARCHAR(50) NULL DEFAU
- 最近项目组同事跟我说遇到一个SQL性能问题,他说全表只有69条记录,客户端执行耗费了两分多钟,很不科学。我帮了分析出了原因并得到解决。下面小
- 有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很。接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,
- 由于谷歌浏览器80以后版本采用了新的加密方式,所以记录在这里# -*- coding:utf-8 -*-import osimport js
- 动态链接库在Windows中为.dll文件,在linux中为.so文件。以linux平台为例说明python调用.so文件的使用方法。本例中
- Pytorch expand()的使用有两点需要注意,无论是 expand() 还是 expand_as():1.只能在第0维扩展一个维数,
- 我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而cpu占用很低,所以经常挂着代理一跑就跑好几百个。但是爬虫程序通常是
- 一:背景以及项目结构介绍第一次将自己做的python爬虫项目打包成exe,搜了很多网上教程,大部分都是打包一个py文件的小demo,这里先给
- MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cur
- 一个非常简单的将半角"转换为中文"的asp函数function new_str(str) 
- 本文介绍sqlite数据库,如何使用sqlite3包操作轻量级关系型数据库。sqlite概述sqlite是嵌入式关系型数据库引擎,官方描述为
- Python果然是一款非常简明的语言,做东西非常流畅,今天又尝试了一下用Serial做了一个控制台的串口通讯,我用的下位机是STM32F10
- 简介:1、global是Python中的全局变量关键字。2、全局变量是编程术语中的一种,源自于变量之分。3、变量分为局部与全局,局部变量又可
- 功能super功能:super函数是子类用于调用父类(超类)的一个方法。用法1.在子类 __init__() 方法中正确的初始化父类,保证相
- 前言在awesomes上寻找移动端框架的时候意外发现了vux的页面切换效果,后面由于其他考虑没有选用vuex但是这个切换效果确实感觉很有新意
- 如果不清楚字符串的编码格式的话,就可以将这段字符这样检查:$encode = mb_detect_encoding($string, arr