Python打包成.exe文件直接运行

news2024/12/22 22:44:31

文章目录

  • 前言
  • pyinstaller
  • .exe文件
  • 具体步骤
    • 第一步:安装pyinstaller
    • 第二步:进入要打包文件的目录
    • 第三步:执行文件
    • 第四步:发给好友
  • 拓展
  • 尾声

前言

很多小伙伴在阅读了博主的文章后都积极与博主交流,在这里博主很感谢大家的喜欢。博主最近收到了一个小伙伴的问题,就是那么多有趣的代码,怎么发给别人,让没有python环境的小伙伴也可以使用呢。本期博主将带着大家探索如何将自己的代码打包成.exe可执行文件,一起来看看吧!

pyinstaller

PyInstaller是一种用于Python脚本的自包含的可执行文件打包工具,它可以将Python代码打包成一个可执行文件,使得该文件可以在没有安装Python解释器的情况下在其他计算机上运行。PyInstaller支持多种操作系统和Python版本,可以帮助Python开发者更加方便地分发和部署他们的应用程序。

PyInstaller的工作原理是将Python脚本解析成可执行文件。它将Python脚本和所有的依赖库、资源文件打包成一个可执行文件,并且会自动解析依赖关系,使程序在其他计算机上可以独立运行。打包后的可执行文件包含一个解释器和所有的依赖库、资源文件,不需要安装任何其他程序。

PyInstaller的使用非常简单,只需要安装PyInstaller,然后使用命令行工具打包即可。打包命令非常简单,只需要指定Python脚本的路径,PyInstaller会自动解析依赖关系,并生成一个可执行文件。PyInstaller支持多种参数,可以对打包后的可执行文件进行一些定制化的设置。例如,可以设置图标、版本号等信息,也可以排除某些依赖库或文件。

PyInstaller不仅可以将Python脚本打包成可执行文件,还可以将Python程序打包成DLL和SO文件,使得Python程序可以被其他编程语言以动态链接库的方式调用。这也使得Python成为了一种非常灵活和强大的编程语言,可以和其他编程语言混合使用。

虽然PyInstaller对Python的打包和部署提供了很大的便利,但是在打包过程中也需要注意一些问题。例如,打包后的可执行文件会比原脚本文件大很多,可能会占用更多的磁盘空间。此外,由于打包后的文件需要包含所有依赖库和资源文件,因此打包时间可能会比较长。在使用PyInstaller时,需要仔细阅读文档,并且多做测试,以确保生成的可执行文件可以在目标计算机上正常运行。

总之,PyInstaller是一个非常好用的Python打包工具,它可以将Python脚本和依赖库、资源文件打包成一个可执行文件,使得该文件可以在其他计算机上独立运行。PyInstaller支持多种操作系统和Python版本,使用简单方便。虽然在使用时需要注意一些问题,但是PyInstaller的便利性使得它成为了Python开发中不可或缺的一部分。

.exe文件

.exe文件是Windows操作系统中的一种可执行文件格式,它是由Windows编译器编译出来的二进制文件,用于执行程序代码。.exe文件通常包含了程序的所有必要资源和库文件,因此可以独立地在计算机上运行,不需要依赖其他软件或环境。它是一种非常流行的文件格式,因为它可以方便地将程序分发给用户,用户只需要双击该文件即可启动程序。

.exe文件通常是由开发人员使用编译器将源代码编译成机器语言生成的。编译器将源代码翻译成适用于目标计算机的指令集,生成可执行文件。.exe文件包含了程序的所有代码、资源和数据,它是一种可靠的二进制文件,可以在Windows操作系统上运行。

.exe文件可以储存在计算机上的任何位置,并且可以通过双击文件启动程序。它也可以通过命令行来启动。.exe文件可以启动GUI界面,也可以只是在控制台上输出某些信息。.exe文件还可以接受命令行参数,这些参数可以被程序用来影响其运行。

.exe文件的安全性问题也备受关注。恶意软件开发者会将病毒、木马等恶意代码嵌入.exe文件中,以达到控制用户计算机的目的。因此,在使用.exe文件时,要注意文件来源的可信度,并且使用杀毒软件检查文件是否存在病毒,以保证计算机的安全性。

总之,.exe文件是Windows操作系统中的一种可执行文件格式,用于执行程序代码。它包含了程序的所有必要资源和库文件,可以独立地在计算机上运行。.exe文件可以通过双击文件启动程序,也可以通过命令行来启动。在使用.exe文件时,要注意文件来源的可信度,并且使用杀毒软件检查文件是否存在病毒,以保证计算机的安全性。

具体步骤

第一步:安装pyinstaller

首先同时按住键盘上的"win+r"键,输入"cmd"进入终端

1

在终端输入

pip install pyinstaller

下载安装pyinstaller工具

安装成功后在终端输入"pyinstaller"检查是否安装成功

2

如上图即安装成功

第二步:进入要打包文件的目录

在这里我就以满屏表白代码为例子给大家演示一下

将代码输入pycharm(conda等python环境都可以)

3

查看该文件的路径

4

在终端进入该路径

5

输入如下命令,等待打包即可

pyinstaller -F main.py

注意这里的main.py文件是你要打包的文件名,对我来说是如下这个文件

6

出现如下的信息说明打包成功

7

第三步:执行文件

最后我们进入刚才的文件夹,我们会发现刚才的目录下多出了三个文件(文件夹)

8

我们进入"dist"文件夹,里面有一个"main"文件夹

9

双击进入"main"文件夹

10

里面有一个main.exe可执行文件,双击运行即可!

第四步:发给好友

只需要将刚才的三个文件放入同一个文件夹下,然后压缩文件夹发给好友即可哦

11
12
13

拓展

对于

pyinstaller -F main.py

除了-F参数,pyinstaller还有许多其他参数可供选择,以下是一些常用的参数:

  • -w :关闭控制台窗口,使程序在后台运行。
  • -c :为程序创建一个控制台窗口。
  • -D :创建一个包含多个文件的目录结构作为输出。
  • -i :指定程序的图标文件。
  • -n :指定程序的名称。
  • -p :添加额外的模块搜索路径。
  • --hidden-import :强制添加一个隐藏的导入(在运行时需要但无法自动检测到的模块)。
  • --exclude-module :排除特定模块。

例如,运行pyinstaller -w -i icon.ico main.py将使用icon.ico作为程序图标,并在后台运行程序。

尾声

喜欢本篇文章的小伙伴记得点赞收藏哦~
感谢大家的喜欢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1148309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

scrapy-redis分布式爬虫(分布式爬虫简述+分布式爬虫实战)

一、分布式爬虫简述 (一)分布式爬虫优势 1.充分利用多台机器的带宽速度 2.充分利用多台机器的ip地址 (二)Redis数据库 1.Redis是一个高性能的nosql数据库 2.Redis的所有操作都是原子性的 3.Redis的数据类型都是基于基本数据…

LED数码管的静态显示与动态显示(Keil+Proteus)

前言 就是今天看了一下书上的单片机实验,发现很多的器件在Proteus中都不知道怎么去查找,然后想做一下这个实验,尝试能不能实现,LED数码管的两个还可以实现,但是用LED点阵显示器的时候他那个网络标号不知道是什么情况&…

GZ035 5G组网与运维赛题第7套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第7套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…

python自动化测试(六):唯品会商品搜索-练习

目录 一、配置代码 二、操作 2.1 输入框“运动鞋” 2.2 点击搜索按钮 2.3 选择品牌 2.4 选择主款 2.5 适用性别 2.6 选择尺码 2.7 选择商品:(通过css的属性去匹配) 2.8 点击配送地址选项框 一、配置代码 # codingutf-8 from selen…

基于萤火虫算法的无人机航迹规划-附代码

基于萤火虫算法的无人机航迹规划 文章目录 基于萤火虫算法的无人机航迹规划1.萤火虫搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用萤火虫算法来优化无人机航迹规划。 1.萤火虫…

Mysql数据库基本概念和Sql语言

一、数据库基本概念 1.1 数据库概述 数:数字信息 据:属性 数据:对一系列对象的具体属性的描述的集合 数据库:数据库就是用来组织(各个数据之间是有关联的,按照规则组织起来的)、存储和管理(对数据的增、删、改、查)的…

JavaEE-博客系统1(数据库和后端的交互)

本部分内容包括网站设计总述,数据库和后端的交互; 数据库操作代码如下: -- 编写SQL完成建库建表操作 create database if not exists java_blog_system charset utf8; use java_blog_system; -- 建立两张表,一个存储博客信息&am…

数据结构—线性实习题目(二)5迷宫问题(栈)

迷宫问题&#xff08;栈&#xff09; #include <iostream>​ #include <assert.h> using namespace std;int qi1, qi2; int n; int m1, p1; int** Maze NULL; int** mark NULL;struct items {int x, y, dir; };struct offsets {int a, b;char* dir; };const int…

Java SE 学习笔记(十八)—— 注解、动态代理

目录 1 注解1.1 注解概述1.2 自定义注解1.3 元注解1.4 注解解析1.5 注解应用于 junit 框架 2 动态代理2.1 问题引入2.2 动态代理实现 1 注解 1.1 注解概述 Java 注解&#xff08;Annotation&#xff09;又称Java标注&#xff0c;是JDK 5.0引入的一种注释机制&#xff0c;Java语…

Java 基于微信小程序的汉堡点餐系统的研究与实现

文章目录 1 简介2 相关技术介绍3 系统需求分析4 系统功能分析5 系统的详细设计与实现5.1 系统登录页面5.2 点餐系统后台首页页面5.3 商品信息管理页面5.4 会员管理页面5.5 购买信息管理页面5.6 小程序首页信息页面5.7 商品信息页面5.8 在线下单页面 6 推荐阅读 1 简介 基于微信…

笔记本电脑搜索不到wifi6 无线路由器信号

路由器更换成wifi6 无线路由器后&#xff0c;手机能搜索到这个无线信号&#xff0c;但是笔记本搜索不到这个无线信号&#xff0c;后网上搜索后发现是无线网卡驱动问题&#xff0c;很多无线网卡使用的是Intel芯片&#xff0c;Intel就此发布了公告&#xff0c;升级驱动就可以彻底…

【C】C语言文件操作

1.为什么使用文件 我们前面学习结构体时&#xff0c;写通讯录的程序&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删除数据&#xff0c;此时数据是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&#xff0c;等下…

ZYNQ连载08-Lwip网络组件

ZYNQ连载08-Lwip网络组件 1. 添加Lwip包 2. Lwip配置 我这里关闭ipv6和dhcp。 3. tcp客户端 #include "include/my_tcp.h" #include "lwip/ip.h"#define THREAD_STACKSIZE 1024 #define SERVER_PORT 8000 #define SERVER_ADDR "192.168.3.190&qu…

SHCTF2023 山河CTF Reverse方向week2weenk3部分WP【详解】

文章目录 [WEEK3]ststst[WEEK2]not gcc[WEEK2]Run?润&#xff01;[WEEK2]Authurs_box[WEEK2]pycode [WEEK3]ststst 64 bit 的 ELF 文件 sub_400763点进去看看 mprotect &#xff0c;这个 这一题是SMC TEA的考察&#xff0c;我写过一篇关于 SMC学习网鼎杯jocker 可以使用id…

设计模式(单例模式、工厂模式及适配器模式、装饰器模式)

目录 0 、设计模式简介 一、单例模式 二、工厂模式 三、适配器模式 四、装饰器模式 0 、设计模式简介 设计模式可以分为以下三种: 创建型模式&#xff1a;用来描述 “如何创建对象”&#xff0c;它的主要特点是 “将对象的创建和使用分离”。包括单例、原型、工厂方法、…

LabVIEW开发安捷伦液相色谱Agilent 1100 HPLC

LabVIEW开发安捷伦液相色谱Agilent 1100 HPLC 液相色谱是在科研中常用的仪器&#xff0c;尤其是安捷伦等大品牌。这里对1100的使用进行介绍。 LabVIEW安捷伦1100系列驱动程序&#xff0c;用于控制1100系列的所有仪器。在LabVIEW中使用串行&#xff0c;GPIB或以太网接口。参考…

【java爬虫】公司半年报数据展示

前言 前面有一篇文章介绍了使用selenium获取上市公司半年报的方法&#xff0c;这篇文章就给这些数据写一个简单的前端展示页面 上一篇文章的链接在这里 【java爬虫】使用selenium获取某交易所公司半年报数据-CSDN博客 首先来看一下整个页面的展示效果 前端页面采用vueeleme…

第89步 时间序列建模实战:时间序列融合模型

基于WIN10的64位系统演示 一、写在前面 这一期&#xff0c;我们介绍融合模型模型。 &#xff08;1&#xff09;数据源&#xff1a; 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndro…

创建进程中的内核操作

fork 是一个系统调用&#xff0c;流程的最后会在 sys_call_table 中找到相应的系统调用 sys_fork。 _do_fork 里面做的第一件大事就是 copy_process&#xff0c;咱们前面讲过这个思想。如果所有数据结构都从头创建一份太麻烦了&#xff0c;还不如使用惯用“伎俩”&#xff0c;…

shell脚本中数组

分界点&#xff1a;以下内容需要更改&#xff0c;正常放假更改 数组&#xff1a; 数组的作用&#xff1a;可以一次性的定义多个变量&#xff0c;数组的长度是不限的 数组的元素类型&#xff1a;int string float. 就是形成变量池&#xff0c;可以随时的遍历和使用 数组的写…