Python可执行文件的转换

 

 

当开发者向普通用户分享程序时,为了方便用户在未安装Python环境的情况 下能够正常运行,需要将开发好的程序进行打包,转换成用户可运行的文件类

型。本节将介绍在Windows和Linux两种系统下,将Python类型的文件转换成可执 行文件的方式。

PyInstaller是常见的执行文件打包工具。该工具的安装方式非常简单,可运行 在Windows 、MacOS X和GNU/Linux操作系统环境中,支持Python 2和Python 3两  种版本,并且在不同的操作系统环境中,PyInstaller工具的使用方法和选项相同。

需要注意的是,用PyInstaller打包的执行文件,只能在与执行打包操作的系统 类型相同的环境下运行。也就是说,这样的执行文件不具备可移植性,比如在

Windows系统下用PyInstaller生成的执行文件只能运行在Windows环境,在Linux系 统下生成的执行文件只能运行在Linux环境。

 

 

 

 

 

 

2.9.1    在Windows系统下转换

首先从官方网站(pyinstaller · PyPI)下载PyInstaller的安装  包,将下载好的PyInstaller压缩包文件进行解压。解压好的文件夹下包含setup.py 文件。可通过执行如下命令对PyInstaller进行安装:

 

>>> python setup .py install

安装PyInstaller的过程如下所示:

a8262c314a9b4a1d8b475dc3e44175d8.png

准备好要进行打包的Python文件和需要绑定的图标类型。需注意的是图标应 为.ico类型。将两个文件放到一个文件夹中,通过cmd窗口打开该文件夹所在路  径,执行如下命令进行打包操作:

>>> pyinstaller -F -i snail.ico ms08067 .py

执行效果如下所示:

 

 

 

 

 

0eeaf795385b43719ff5f91379121032.png

执行后的文件如图2-7所示。

2071d26e54354d2db1050b1d1907518e.png

图2-7    执行后的文件

生成的可执行文件ms08067.exe存储在dist文件夹中,通过cmd命令打开文件 所在路径,并运行ms08067.exe文件,运行结果如下所示:

87e7938cd35946d2bce03a3a656bc963.png

 

 

 

 

 

 

2.9.2    在Linux系统下转换

在Linux系统下安装PyInstaller的方式与Windows系统中相同,从官方网站下 载PyInstaller ,将下载好的PyInstaller压缩包文件解压,通过执行如下命令对

PyInstaller进行安装:

 

>>> python3 setup .py install

执行结果如下所示:

c877afc00fe04783a5d30b14cf151633.png

将要打包的Python文件放到一个文件夹中,执行如下命令进行打包操作:

aee7db4d70c345e5a0a260ab8cb18e44.png

>>> pyinstaller -F ms08067 .py

可执行文件转换的执行效果如下所示:

 

 

 

 

 

b9133437f7a94f189d3d20dfa17436ca.png

生成的可执行文件ms08067存储在dist文件夹中,运行命令终端打开文件所在 路径,并运行ms08067可执行文件,运行结果如下所示:

049eeeed5139435d9fbc1154f3d0430b.png

 

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

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

相关文章

netty: MessageToMessageCodec的用法

一、定义类,继承MessageToMessageCodec,重写encode和decode方法 package cn.edu.tju;import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMes…

编码风格之(5)GNU软件编码风格(3)

GNU软件编码标准风格(3) Author:Onceday Date: 2024年1月21日 漫漫长路,才刚刚开始… 本文主要翻译自《GNU编码标准》(GNU Coding Standards)一文。 参考文档: Linux kernel coding style — The Linux Kernel documentationGNU Coding Standard…

kotlin $ (字符串模版)的使用

$ 在kotlin 中当做字符串模版使用,作用就是在字符串里面识别自己定义的字符 例如打印一个字符 这个时候编译就提示我们使用字符串模版的是个 $ 的作用就是识别字符串里面的i 字数有点少了,在写一个demo private fun String.appendArchive(): String …

java-集合-List集合

List集合 java.util.List接口,继承自Collection. List集合是可重复集,并且有序,提供了一套可以通过下标操作元素的方法 常用实现类: - java.util.ArrayList:内部使用数组实现,查询性能更好. - java.util.LinkedList:内部使用链表实现,首尾增删元素性能更好. List集合常见方法…

云手机与实体手机的对比

在数字化时代,云手机作为一种虚拟手机在云端服务器上运行,与传统的实体手机相比存在诸多差异。让我们深入探讨云手机与实体手机之间的区别,以便更好地了解它们的特点和优势。 外观上的差异 实体手机具有实际的外观和重量,占据一定…

Spring Boot整合XXL-Job

Spring Boot整合XXL-Job 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将探讨如何在Spring Boot项目中整合XXL-Job,一个分布式任务…

编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡(Weighted Load Balancing) 轮询(Round Robin) IP 哈希(IP Hash) 最少连接&#xff…

多维时序 | Matlab实现EVO-TCN-Multihead-Attention能量谷算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现EVO-TCN-Multihead-Attention能量谷算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现EVO-TCN-Multihead-Attention能量谷算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资…

Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )

目录 JdbcTemplateJdbcTemplate(概念和准备)JdbcTemplate 操作数据库(新增update)JdbcTemplate 操作数据库(修改和删除update)JdbcTemplate 操作数据库(查询返回某个值queryForObject&#xff0…

shopee的AI学习之路——GPTs通过AdInteli 广告变现

GPTs|AdInteli 广告变现 一、什么是 AdInteli AdIntelli 是一个旨在为生成 GPTs 接入广告并实现变现的平台。它连接了全球最大的广告联盟,允许广告商进行竞价,确保展示最有价值的广告。AdIntelli 采用 AI 驱动的收入生成技术,优化广告选择。…

安卓MediaRecorder(4)视频采集编码写入详细源码分析

文章目录 前言视频采集视频编码视频编码写入结语 本文首发地址 https://blog.csdn.net/CSqingchen/article/details/134896821 最新更新地址 https://gitee.com/chenjim/chenjimblog 前言 通过 文2 我们知道了 MediaRecorder 各个接口 Framework 中的实现。 通过 文3 我们 知道…

<网络安全>《5 网络安全产品之网关》

1 基础概念 网关(Gateway)又称网间连接器、协议转换器。 网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。 网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或…

《游戏-03_3D-开发》之—新输入系统人物移动攻击连击

本次修改unity的新输入输出系统。本次修改unity需要重启,请先保存项目, 点击加号起名为MyCtrl, 点击加号设置为一轴的, 继续设置W键, 保存 生成自动脚本, 修改MyPlayer代码: using UnityEngine;…

华为产业链之车载激光雷达

一、智能汽车 NOA 加快普及,L3 上路利好智能感知硬件 1、感知层是 ADAS 最重要的一环 先进驾驶辅助系统 (ADAS, Advanced driver-assistance system)分“感知层、决策层、执行层”三个层级,其中感知层是最重要的一环…

Python数据分析:数据处理

数据处理是指对原始数据进行清洗、转换、整合和分析,以便从中提取有价值的信息。 常见的数据处理步骤包括: 数据清洗:去除缺失值、异常值和重复值。数据转换:对数据进行格式转换、归一化、标准化等操作。数据整合:将…

vue创建前端项目

背景 项目中需要用到前端技术,通过技术调研和团队分析,则采用vue作为前端主要技术栈。 问题 安装好后vue,按理说就可以创建vue项目 vue init webpack 项目名称 npm install,使用vue-cli脚手架搭建项目卡在sill idealTree buil…

C++高级编程——STL:list容器、set容器和map容器

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…

C++入门【35-类访问修饰符】

数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。 一个类可以有多个 public、protected…

C#hybridCLR热更新方案初探

前言 暂时处于初步研究状态,目前的框架使用还是尚少,本篇文章旨在同步给大家大概的使用流程和使用心得,在初步建立新项目时可以适当考虑。 介绍 热更新 与强制更新相对应,移动平台上App的可执行程序没有发生变化,仅…

[Go]认识Beego框架

对比Gin的简洁,自己之前基于Gin撸了一个架子,确实比beego目录看着舒服多了,不过最近接触到beego的项目,beego的bee工具使用还是很方便,来简单梳理下细节; Beego是一个开源的Go语言Web应用框架,…