Python打包为exe文件

article/2025/10/29 12:44:27

前言

我们开发的python脚本一般都会用到一些第三方包,当别人需要用到我们编写的脚本时,如果我们将脚本文件发给他,他是不能直接运行去用的,他需要安装python解释器,配置相应的环境,这是相当麻烦的。那怎么办呢?我们可以将脚本和解释器打包成exe,再发给别人去使用。

PyInstaller介绍

PyInstaller是一个的打包python的py文件的库。

PyInstaller除了win32平台外还支持Linux,Unix平台 

PyInstaller本身并不是Python模块,所以安装时放到哪里都可以

优点:

  1. 可将python文件转成可执行文件
  2. 跨平台
  3. 可以选择exe文件的图标 (Windows only)

python脚本是不能脱离python解释器单独运行的,所以在打包的时候,至少会将python解释器和脚本一起打包,同样,为了打包的exe能正常运行,会把我们所有安装的第三方包一并打包到exe。

安装pyinstaller

pip install pyinstaller

使用pyinstaller进行打包

1.我习惯在Anaconda中创建虚拟环境来完成一个个的项目,所以我的PyInstaller库就直接安装在了我要打包的项目的虚拟环境(face)中

2.通过pip命令在虚拟环境中安装好包之后,通过cd命令转移到主文件所在的项目目录中,如cd C:\Users\80621\Desktop\python_learning\recongz

3.我的主文件是run.py

等待打包完成就可以了。 

 打包完成后项目文件夹中会多一个dist目录,exe文件就在其中

若项目中有文件用到了相对路径,需要把那些用到的文件再拷贝一份放到dist目录下。

查用打包命令

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不带控制台的打包

Pyinstaller -F -i xx.ico setup.py 指定exe图标打包

Pyinstaller -F -w -i xx.ico setup.py 指定exe图标并且不带控制台的打包

ico转换  :在线图片转icon格式 – 图片转换成icon在线工具 – 迅捷PDF转换器在线免费版

以下问题需要注意!!! 、

1)路径问题

如果你的程序中有图片等资源,是需要根据程序中的相对路径加入到dist文件中,也要在.exe同目录中加入images的文件夹(图片资源)

如果原.py程序使用了图片等素材,并且添加图片是相对路径(同一个文件夹下可以不使用绝对路径),打包文件后,需要将图片等素材拷贝一份放在打包后的文件夹下,否则运行.exe程序会找不到图片素材。

如果原.py程序使用图片添加的是绝对路径,在本地电脑上运行时可能不会发现错误。但是你将打包后的文件发给另一台机器,运行.exe程序会报错,大概意思是“根据你写的绝对路径找不到图片等素材”,即使你在文件夹下拷贝了素材,但是绝对路径也是错误的,所以,最好使用上一种方法。

2)打包的主文件问题

只能指定一个要打包的模块,也就是启动模块

发布后,可执行文件执行路径不能有中文(最好也不要有空格)

启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果

  if __name__=='__main__':

将exe放到其他机子上运行,弹出“找不到msvcr100.dll“ ,手动将”msvcr100.dll“拷贝到dist目录下即可

3)养成良好习惯

写代码的时候应当养成良好的习惯,用什么函数导什么函数,不要上来就import整个库,最后你会发现你一个100KB的代码打包出来有500MB,全是库

使用Inno SetUp制作安装包_鱼生艰难啊的博客-CSDN博客_inno安装包 


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

相关文章

【Python】如何将写好的Python代码打包成exe文件?

🆔作者简介:一名电子信息大学生. 📑 个人主页:爱学习的汪同学主页👀 📫 如果文章知识点有错误的地方,请指正!和大家一起学习进步 🔥 如果感觉博主的文章还不错的话,还请不…

python文件转为可执行文件(.exe)的详细步骤

目录 六一快乐!!!! 前言 安装所需要的工具 关于“pyinstaller” 安装“pyinstaller” 准备python文件 打包python文件 运行可执行文件 注意事项!!!!! 关于依赖项…

一次学会两种方式将 python 打成 exe

python 可以做网站应用,也可以做客户端应用。但是客户端应用需要运行 py 脚本,如果用户不懂 python 就是一件比较麻烦的事情。幸好 python 有第三方模块可以将脚本可以转成 exe 执行。 有些人可能要问了既然可以做成网站,为啥还要做成客户端…

手把手教你把Python代码转成exe

【文末有福利】 很多刚入门的盆友都有疑惑怎么把Python代码转成可执行的exe?,这里行哥统一解决一下这个问题 1.在cmd里安装pyintsaller包2.在cmd里输入打包成exe的命令3.问题总结4. pyintsaller --help5. end 1.在cmd里安装pyintsaller包 第一步安装将Py…

微服务架构服务治理:服务注册中心+服务发布与注册+服务发现与调用+服务监控

目录 一、服务注册中心:注册中心核心功能实现策略 1.注册中心核心功能 2.注册中心实现策略 二、服务发布与注册 三、服务发现与调用 四、服务监控 基本思路:日志埋点 基本目标: 基本定位: 基本策略: 具体实…

zabbix 监控 windows 服务器

zabbix 监控 windows 服务器 步骤: 1.确定zabbix服务器的IP地址和 zabbix 版本 2.官网下载对应版本的zabbix-agent或 3.在要监控的windows服务器中安装zabbix-agent 4.在zabbix配置里添加windows主机第一步:确定zabbix服务器的IP地址和 zabbix 版本 如…

java监听服务器信息,java实时监控服务器状态

java实时监控服务器状态 内容精选 换一换 监控是保持弹性云服务器可靠性、可用性和性能的重要部分,通过监控,用户可以观察弹性云服务器资源。为使用户更好地掌握自己的弹性云服务器运行状态,公有云平台提供了云监控。您可以使用该服务监控您的弹性云服务器,执行自动实时监控…

使用Grafana+Prometheus配置服务器监控

文章目录 前言一、Grafana安装和配置1.安装2.登录 二、Prometheus安装和配置1.安装1.1 配置系统服务 2.查看服务 三、node_exporter安装和配置1.安装1.1 配置系统服务 2.修改prometheus.yml配置3.查看服务 四、Grafana配置prometheus1.配置数据源2.导入首页模板 前言 最近项目…

springboot2.x中的服务监控

想给服务添加一个监控,看看网上各位前辈的,基本都是基于springboot1.x的,springboot升级到2.0以后和1.x还是有很多不一样的,那么2.0以后怎么使用admin监控呢? 先看下图的managment.security.enable,现在已经…

cacti监控服务器性能,cacti监控服务器

cacti监控服务器 内容精选 换一换 博文目录一、Cacti1、Cacti简介2、cacti的作用和特点3、cacti监控的数据类型二、安装配置Cacti监控服务器1、配置LAMP环境2、安装SNMP和RRDtooll工具3、部署英文cacti连接mariadb4、客户端访问英文cacti的WEB界面5、部署中文cacti连接maria 来…

Grafana + prometheus在Centos搭建服务器监控系统(三)--配置监控Nginx

部署并配置nginx-module-vts 参考我之前的文章: Linux下Nginx配置nginx-module-vts_allen的博客-CSDN博客 配置nginx-vts-exporter exporter会收集nginx性能指标的JSON格式数据,并汇总后暴露监控接口给Prometheus。 cd /data/program wget -c https…

shell脚本实现服务监控报警并重启

第一篇 使用crontab指令的shell脚本实现服务监控报警重启 这两天做了一个服务监控报警重启的脚本。本质就是用一个shell命令去监控服务状态,如果宕机就会自动重启,并向指定邮箱发送邮件对管理人员进行提醒,再使用crontab命令设置每隔一分钟…

Zabbix +Grafana 服务器监控体系

无监控,不运维。废话不多说,下面都是干货 官方地址: https://www.zabbix.com/cn/download 声明 使用的是zabbix6.0.7版本。Mysql 8.0.26。演示使用的系统镜像为rocky linux 8.6 --------------------------------------------Zabbix--------…

SpringBoot整合Admin服务监控(图文详细)

SpringBoot整合Admin服务监控组件 1 SpringBootAdmin 简介 1.1 概述 SpringBootAdmin 是一个非常好用的监控和管理的开源组件,该组件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功…

windows下的文件服务器监控

windows下的文件服务器监控 一、使用Windows自带的管理工具进行查看当前服务器连接的用户及打开的文件,但是该功能比较简单,无法对文件进行监控,比如什么时间哪个用户连接到共享文件夹对该文件夹的文件进行过什么操作。 二、使用工具软件 …

java项目实现服务器监控,Java实现服务器状态监控

Java实现服务器状态监控 内容精选 换一换 云容器实例(Cloud Container Instance,CCI)服务提供 Serverless Container(无服务器容器)引擎,让您无需创建和管理服务器集群即可直接运行容器。Serverless 是一种架构理念,是指不用创建和管理服务器、不用担心服务器的运行状态(服务…

安利一款免费、开源、实时的服务器监控工具:Netdata

Netdata 是一个免费、开源、实时的服务器监控工具,可以可视化和监控实时数据,如 CPU 使用率、RAM 使用率、负载、SWAP 使用率、带宽使用率、磁盘使用率等。它可以帮助系统管理员了解您的系统或应用程序中正在发生的事情以及刚刚发生的事情。它可以安装在…

Spring Boot服务监控(Prometheus)

哲学 最近看到了一句话:定乎内外之分 辩乎荣辱之境。 一个外国作家也说过: 我生命里的的最大突破之一,就是我不再为别人的看法而担忧。此后,我真的能自由的去做我认为对自己最好的事,只有在我们不需要外来的赞许时&…

几种服务器监控系统,几种服务器监控系统

几种服务器监控系统 内容精选 换一换 设置“云服务器名称”。名称可自定义,但需符合命名规则:只能由中文字符、英文字母、数字及“_”、“-”、“.”组成。如果同时购买多台弹性云服务器,系统会自动按序增加后缀。一次创建多台弹性云服务器时…

无线监控设置smtp服务器,监控smtp服务器

监控smtp服务器 内容精选 换一换 华为云提供了云监控服务,您可以使用该服务监控弹性云服务器,在您开通了弹性云服务器后,云监控服务将自动实时监控并根据您设置的告警预置触发告警和通知,帮助您更好地了解弹性云服务器的各项性能指…