把python文件转exe文件 和 打包报错处理

article/2025/10/29 6:40:34

今天,我教大家怎么把py文件转换成exe文件,

首先,我们要用到一个第三方库,他就是pyinstaller

pip install pyinstaller

zip包下载(CSDN免费

Pyinstaller代码压缩包-Python文档类资源-CSDN下载

此外,我还写了一个简易的程序,把pyinstaller的功能封装成了一个exe,可以去下载(免费,亲测有效)要源码的在文章底部

py文件转换器1.0.0-Python文档类资源-CSDN下载

除此之外,还有一个把pyinstaller封装成gui的模块,他就是auto-py-to-exe

pip install auto-py-to-exe

Pyinstaller教程

Pyinstaller命令参数介绍

Pyinstaller命令参数介绍
-F生成的exe所运行的文件
-w基于窗口,取消python控制台
-iexe文件图标(icon格式)
-n生成的exe的名字
--add-data附加文件/文件夹
--onedir生成一个文件夹,exe文件在此目录内
--onefile单独生成exe文件
--name同-n,生成的exe的名字
--windowed同-w,基于窗口,取消python控制台
--icon同-i,exe文件图标(icon格式)
--console

基于控制台,再未勾选-w或--windowed的情况下,默认选择

以上是Pyinstaller命令参数介绍,接下来是使用方式

我们安装好之后,先打开cmd,安装Pyinstaller了之后,在命令行输入pyinstaller即可使用,

格式:

Pyinstaller 命令参数
Pyinstaller -F 文件名
Pyinstaller -n 任意字符
Pyinstaller -i 文件名
Pyinstaller --add-data 文件名
Pyinstaller -w -c --onedir --onefile 无参数

Pycharm使用Pyinstaller

1.打开Pycharm的终端

2.打开设置

3.点击螺丝刀

4.把shell.exe改成cmd.exe,

5.点击确定

完成了以上几步后,在终端输入命令即可

Auto-py-to-exe教程

auto-py-to-exe是一个把pyinstaller封装成窗口的模块,让pyinstaller的使用方式变得十分简单,使用方式类似pyinstaller,但无命令参数,在cmd输入auto-py-to-exe即可打开进程,他不仅通俗易懂,还有多国语言

运行截图:

Pyinstaller错误排除

1.UPX is not available error

原因分析: 

python环境的Scripts文件夹内缺少了一个upx.exe的文件

解决方案1:

到官网UPX: the Ultimate Packer for eXecutables - Homepage中下载一个UPX, 将下载文件解压后得到的upx.exe文件(解压后的所有文件里只要这一个文件即可,其他文件不需要), 将其复制粘贴到python环境的Scripts文件夹中即可解决该问题; 

若找不到下载页面, 可使用此链接直通下载页面: Releases · upx/upx · GitHub

2.PermissionError: [Errno 13] Permission denied: 'D:\\PyCode\\venv\\Scripts\\dist\\room.exe.notanexecutable'

 原因分析: 

提示拒绝访问,很可能该文件现在被占用不能被写入,检查该文件目前是否被打开,比如该python文件正在编辑器中编辑,或者说还在IDE中运行,比如pycharm,若是则将其关闭后在执行打包命令。有时候代码里有要写入文件操作时显示这个错误也是这个道理,也可以按照上述方法解决。

解决方案1:

尝试关闭杀毒软件后比如360,很多人关闭杀毒软件后就打包成功了。

解决方案2:

看文件或者所属文件夹本身有没有权限问题,建议cmd以管理员身份运行,然后再进行重新打包。

3.'pyinstaller' 不是内部或外部命令,也不是可运行的程序或批处理文件

原因分析: 

这种是最简单的错误,要先安装pyinstaller再打包,如果是安装了pyinstaller后出现的这种问题,原因是没有在pyinstaller环境运行命令。

解决方案1:

这种是最简单的错误,要先安装pyinstaller再打包,如果是安装了pyinstaller后出现的这种问题,原因是没有在pyinstaller环境运行命令。

4.pyinstaller打包后 Failed to load dynlib/dll 'libiconv.dll'

原因分析:

项目在没打包前运行没问题,识别正常,打包后就有以下报错,这是因为该模块的dll加载失败造成的

解决方案1:

在自己的虚拟环境中找到该模块的dll,手动复制粘贴到打包后目录即可。

解决方案2:

修改spec文件的时候设置好导入位置,打包时会自动识别。

Py文件转换器源码

文件树:

pyexe/img/icon.icopyexe.py

pyexe.py

import os, sys
import tkinter as _tk
from tkinter.filedialog import *
from tkinter.messagebox import *
import tkinter.messagebox as easyclass MainWindow:def __init__(self):self.window = _tk.Tk()self.iel = _tkself.fileObj = Noneself._command = Noneself.window.resizable(False, False)self.window.geometry("450x500")self.window.title("Py文件转换 作者:wsw")self.start = self.iel.Button(self.window)self.start.place(x=330, y=430, width=100, height=50)self.start.config(text="开始转换", command=lambda: self.StartPyfileToExe())self.text_label = self.iel.Label(self.window)self.text_label.config(text="py文件: ")self.title = self.iel.Label(self.window)self.title.place(x=0, y=0, height=50, width=450)self.title.config(text="py文件转换器 \nv(1.0.0) 作者:wsw 语言:python")self.text_all = self.iel.Label(self.window)self.text_all.place(x=0, y=50, width=450, height=20)self.text_all.config(text="-" * 40 + "-必填-" + "-" * 40, fg="#808080")self.text_label.place(x=20, y=70, width=60, height=25)self.insert_file = self.iel.Entry(self.window)self.insert_file.config(background="white")self.insert_file.place(x=80, y=70, height=25, width=250)self.file_open = self.iel.Button(self.window)self.file_open.config(text="浏览", command=lambda: self.FileOpenFunc(self.insert_file))self.file_open.place(x=330, y=70, width=100, height=25)self.insert_name = self.iel.Entry(self.window)self.insert_name.config(background="white")self.insert_name.place(x=80, y=105, height=25, width=350)self.name_label = self.iel.Label(self.window)self.name_label.config(text="exe文件名: ")self.name_label.place(x=20, y=105, width=60, height=25)self.text = self.iel.Label(self.window)self.text.place(x=0, y=130, width=450, height=20)self.text.config(text="-" * 40 + "-选填-" + "-" * 40, fg="#808080")self.int_of = self.iel.IntVar()self.console = self.iel.Checkbutton(self.window, text='取消控制台(取消exe文件自动生成的python控制台)')self.console.config(variable=self.int_of, onvalue=1, offvalue=0)self.console.place(x=20, y=155)self.icon_open = self.iel.Button(self.window)self.icon_open.config(text="浏览", command=lambda: self.FileOpenFunc(self.icon))self.icon_open.place(x=330, y=185, width=100, height=25)self.icon_label = self.iel.Label(self.window)self.icon_label.config(text="exe图标(ico): ")self.icon_label.place(x=2, y=185, width=80, height=25)self.icon = self.iel.Entry(self.window)self.icon.place(x=80, y=185, width=250, height=25)self.icon.config(background="white")self.add_file_open = self.iel.Button(self.window)self.add_file_open.config(text="浏览", command=lambda: self.DirOpenFunc(self.add_file))self.add_file_open.place(x=330, y=220, width=100, height=25)self.add_file_label = self.iel.Label(self.window)self.add_file_label.config(text="附加文件夹: ")self.add_file_label.place(x=2, y=220, width=80, height=25)self.add_file = self.iel.Entry(self.window)self.add_file.place(x=80, y=220, width=250, height=25)self.add_file.config(background="white")def StartPyfileToExe(self):try:model = "c"icon_png = ""add_file = ""console_bool = self.int_of.get()if self.insert_file.get() is not None:if console_bool == 1:model = "w"if self.icon.get() is not None:icon_png = " -i "+f"\"{self.icon.get()}\""if self.add_file.get() is not None:add_file = f" --add-data \"{self.add_file.get()};.\""self._command = f"pyinstaller --onedir -F -{model} \"{self.insert_file.get()}\" -n " \f"\"{self.insert_name.get()}\" {icon_png} " + add_fileos.system(self._command)else:easy.showinfo("Error", "请输入目标文件!")except Exception:showerror("Error", "封装出错")def DirOpenFunc(self,root):file_name = askdirectory()root.insert(self.iel.END, str(file_name))def FileOpenFunc(self, root):file_name = askopenfilename(defaultextension='.py')root.insert(self.iel.END, str(file_name))def ShowMainWindow(self):self.window.mainloop()MainWindow().ShowMainWindow()

icon.ico

python的icon图片-Python文档类资源-CSDN下载


http://chatgpt.dhexx.cn/article/Xp2fLHns.shtml

相关文章

python封装成exe

最近写了一个小小的程序,需要进行封装exe,为了简单,就直接用了pyinstaller这个模块,对于python3.6版本的童鞋来说,简直方便的不要。下面就给大家介绍一下如何用pyinstaller去封装程序为exe程序。 首先,需要…

python如何封装成exe

python文件封装成exe 第一种:.py文件直接封装成exe第二种:整个项目封装成exe ) 第一种:.py文件直接封装成exe 1.cmd进入py文件所在的目录 备注:在py文件所在的目录下,按住shift鼠标右击,然后找到“在此处…

Python打包成exe文件_详细操作

Python打包成exe文件 前言一、安装pyinstaller1.1 安装pyinstaller,使用安装命令:1.2 如果遇到需要更新版本请输入:1.3 检查是否正确安装1.4 稍等,水一下; 二、python打包成exe文件(附带图标打包)2.1 第一种…

将Python文件转化为exe文件

第一步:首先安装相关工具 在Windos中打开命令行窗口 输入pip install pyinstaller 出现以下情况表示安装成功 第二步:打包成exe文件 若需将xxx.py文件打包,只需在终端执行: 注:终端需切换至xxx.py文件所在目录下。…

如何将python的.py文件转换为可执行的.exe文件。

首先,我写了一个print(“hello,world”).py文件。命名为hello.py保存在我的电脑C盘的C:\Users\ly目录下如图所示。 ps:尽量选择在这个文件夹下,如果选择其他盘的文件夹下,生成的.exe的dist文件夹也会出现在…

将.py文件转化为.exe文件

将.py文件转化为.exe文件首先需要第三方库 pyinstaller 1.如果没有安装pyinstaller,则在命令提示符输入 pip installer pyinstaller 如果已安装,则会显示 表示这几个都安装好了。 2.下载安装pyinstaler运行时所需windows扩展:pywin32 mham…

[272]如何把Python脚本导出为exe程序

文章目录 一.pyinstaller简介二.pyinstaller在windows下的安装三.打包四.小实例(windows下)附加 一.pyinstaller简介 pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行 最新版是pyinstaller 3.1.1。支持python2.7和…

把py转化成exe(干货)

问题提出: 无奈别人的电脑没有装python编译环境,无法运行py文件。   本教程为在window环境下,使用PyInstaller3.4将Python脚本打包成exe可执行程序。 使用命令: pip install pyinstaller   上图为成功安装效果图&#xff0…

简单3步将你的python转成exe格式

使用pyinstaller可以将你的.py文件直接转换成.exe格式,在没有部署python环境的windows机器上直接运行你的程序!! 废话不多说,直接上正文。 1. 在命令行用pip安装 pyinstaller包 pip install pyinstaller 2.下载安装pyinstaler…

.py文件转为.exe文件的方法

写完一个Python程序想给朋友看?朋友电脑里没Python运行不了? 别急,这篇文章来帮你。 把你的python文件转成exe文件,打开方便,瞬间提示一个档次。 (我个人也遇到过这样的问题,看了别人的博客解…

将Python程序打包成exe文件

我新写了一篇更加完整的文章,与这篇文章相比,它新增了两种打包方式:多python文件打包和含有资源文件的打包方式,具体请戳链接: 用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细&#x…

Python 将.py转换为.exe详解

本文是由熊猫大哥大的博客修改而来(所以就不能说是“原创”了) 原博客链接:Python学习笔记(15)-Python代码转换为exe可执行程序详解(下面会提到本文与其的一点不同) 建议看看原博客,再看此文,…

Python学习笔记(15)-Python代码转换为exe可执行程序详解

点此查看 零基础Python全栈文章目录及源码下载 本文目录 1. 简介2. pyInstaller安装配置2.1 下载PyInstaller2.2 下载后解压PyInstaller2.3 下载pywin322.4 安装pywin322.5 安装PyInstaller 3. 制作exe3.1 编写python文件3.2 将代码文件放至pyinstaller目录3.3 制作exe3.4 查看…

如何将py文件转化为exe

如何将py文件转化为exe 第一步:安装pyinstaller库。 首先,winr打开运行窗口,输入 cmd,在cmd窗口中输入python -m pip install pyinstaller 等待计算机安装,完成后会有successfully等字眼 第二步:打包文件…

python文件转换成exe可执行的windows文件

一、介绍 python的程序需要运行环境有时候很不方便,因为要交给别人代码可能因为环境的原因运行各种问题,这里给出直接讲python程序转换成exe文件,很方便直接给执行程序就可以,也不用担心运行环境问题而运行不了 二、工具 1、安装…

将Python文件编译为exe可执行程序

Python程序py格式文件的优点是可以跨平台,但运行必须有Python环境,没有Python环境无法运行py格式文件。有没有方法,用户不同安装Python就可直接运行开发的项目工程?答案是肯定的。这就涉及到需要将Python的.py格式文件编写的脚本编…

python:将.py文件转换成.exe文件

一、使用pip安装PyInstaller ①python3.x需要使用PyInstaller才能进行转exe文件。 ②在命令里安装PyInstaller 如下图,我是在Anaconda的python环境下,直接在Anaconda的命令行窗口下,用命令pip install pyinstaller安装的。 也可以如下图&a…

如何将python程序打包成exe文件

将py打包为exe文件需要依赖pyinstaller 首先介绍以下pyinstaller的命令 -F:打包后只生成单个exe格式文件;-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;-c:默认选项,使用…

只需三步即可将 Python 程序转换成 exe 文件

只需三步即可将 Python 程序转换成 exe 文件 用pyinstaller可以将.py文件转换成.exe格式,让你的程序在没有安装python环境的windows上运行。一、在cmd命令行执行安装pyinstaller工具 pip install pyinstaller二、下载安装pyinstaler运行时所需windows扩展&#xf…

将python文件转成exe文件

通过 pyinstaller 将 python 文件 转成 exe 文件 第一步:推荐使用pip工具安装 pyinstaller cmd-- pip install pyinstaller 第二步: 在目标文件夹地址栏直接输入:cmd,此操作可以不用记住文件路径名称,直接在黑窗命令…