用pyinstaller打包python代码为exe可执行文件并在其他电脑运行的方法

  本文介绍基于Python语言中的pyinstaller模块,将写好的.py格式的Python代码及其所用到的所有第三方库打包,生成.exe格式的可执行文件,从而方便地在其他环境其他电脑中直接执行这一可执行文件的方法。

  有时,我们希望将自己电脑上的某个Python文件发到另一台电脑上使用;而如果这个Python文件中包含了大量的第三方库,那么首先不仅需要保证另一台电脑上有Python环境,而且还需要配置好这些第三方库——这无疑是比较麻烦的。但是,我们可以选择将Python文件(及其所包含的全部第三方库)打包为.exe文件,然后发送给其他电脑并直接加以执行;而这个打包的过程,基于Python语言中的pyinstaller模块,就可以非常方便地进行。本文就介绍一下这个打包的具体方法。

  但是需要注意,pyinstaller模块打包后的可执行文件是不可以跨平台使用的——例如,在Windows上将一个Python代码文件打包,得到的可执行文件就只能在Windows上使用,而在LinuxMac上是不可以使用的;如果大家有这样跨平台使用的需求,pyinstaller模块的官方网站则建议借助Wine来代替实现。

  首先,我们需要配置一下Python语言中的pyinstaller模块。这里需要注意,如果大家待打包的这个Python代码文件是放在了虚拟环境中,那么这个pyinstaller模块也需要配置在这个虚拟环境中。

  在本文中,因为我的待打包文件就是在虚拟环境中,所以首先通过如下的代码进入这一虚拟环境中。其中,关于Python虚拟环境的创建与使用,大家可以参考文章Anaconda中Python虚拟环境的创建、使用与删除(https://blog.csdn.net/zhebushibiaoshifu/article/details/128334614)。

conda activate py39

  随后,输入如下的代码,即可开始配置pyinstaller模块。

pip install pyinstaller

  运行上述代码,如下图所示。

  随后,找到我们需要加以打包的Python代码文件;如下图所示,这个紫色框内的Alignment.py文件就是本文中需要打包的Python代码文件。

  那么,首先通过cd命令,进入待打包文件所在的路径;在本文中,这里就是执行如下的代码。

cd F:\Data_Reflectance_Rec\code

  随后,进入这个文件夹内,我们即可通过如下的命令,将Alignment.py文件加以打包。

pyinstaller -F Alignment.py

  其中,-F表示对Alignment.py文件打包时,只生成唯一的1.exe可执行文件;一般情况下,我们都是带上这个-F参数来运行打包命令的,因为只生成1.exe可执行文件的话,更方便后期我们对这个可执行文件的分享。

  此外,我们还可以在上述代码中加入如下的其他常见参数;当然,除此之外还会有很多其他的参数,具体大家参考pyinstaller模块的官方网站(https://pyinstaller.org/en/stable/index.html)即可。

-h:显示关于pyinstaller命令的帮助。
-D:如果不想要前面-F的效果,那就用这个-D,从而生成多个可执行文件。
-i:如果大家想修改打包后生成的可执行文件的图标,就将自己的图标文件放在这个参数后。
-w:如果大家待打包的Python代码会生成一个GUI界面,那么需要添加此参数,否则后期打开可执行文件时,你的GUI界面可能会被自动弹出的黑色的控制台遮盖导致无法正常显示。

  对于大多数需求而言,我们就用上述的那一句代码即可。执行上述代码,出现如下图所示的界面,表明已经开始打包了。

  稍等片刻(如果待打包的Python代码文件中导入的第三方库比较多,那么打包的时间相对就会长一点,但整体不会太久),出现如下图所示的提示,表明打包已经成功完成了。

  此时,我们在与待打包Alignment.py文件同目录的路径中,可以看到pyinstaller模块对其打包后生成的3个新的文件夹或文件,如下图所示。

  其中,打开dist这个文件夹,其中的.exe可执行文件,就是我们打包后的文件。

  接下来,在这台电脑,或者是其他人的电脑中,运行上图中的这个.exe可执行文件,就会实现和我们当初待打包的Alignment.py文件相同的功能。

  如下图所示,我这里因为原本的Alignment.py文件是一个对数据加以计算的文件,所以运行打包后的可执行文件时,就会出现一个黑色的控制台,而没有其他的变化。

  至此,大功告成。

欢迎关注:疯狂学习GIS

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【外汇天眼】外汇交易风险预警:吊销牌照与高风险平台一览

监管信息早知道!外汇天眼将每周定期公布监管牌照状态发生变化的交易商,以供投资者参考,规避投资风险。如果平台天眼评分过高,建议投资者谨慎选择,因为在外汇天眼评分高不代表平台没问题! 以下是监管牌照发生…

错误: 找不到或无法加载主类 com.zql.springbootTest.SpringbootTestApplication

首先查看application.properties是否出现问题 然后可以尝试 maven install

从基础到高级:Go 语言中 Base32 编码的全面指南

从基础到高级:Go 语言中 Base32 编码的全面指南 引言基础知识base32 编码简介为什么选择 base32 encoding/base32 包概览包的结构和主要类型基本概念 实战教程开始使用 encoding/base32设置开发环境基本的 base32 编码示例解码示例 深入编码细节使用不同的编码表 错…

重保利器,企业安全巡查!亚信安全外部攻击面管理服务可以试用啦

重大安全保障期间 信息系统的稳定与安全至关重要 守在明,攻在暗 传统的防护多始于已知资产的保护 而未知影子资产 则很可能成为攻击者长驱直入的攻击路径 号外号外! 亚信安全“外部攻击面管理服务” 即日起,面向新用户 限时试用&…

上门家政服务APP如何开发?看这一篇文章就够了

当下生活节奏快,工作压力大,人们往往无暇处理家务。上门家政APP因此成为刚需,提供便捷、高效的家政服务,满足用户各类需求,解放时间精力。得益于其透明的价格、严格审核的服务人员及用户评价系统,上门家政A…

为什么要学习三维GIS开发?从技术层面告诉你答案

大家都知道GIS开发属于GIS行业中就业薪资较高的岗位,并且测绘、遥感以及城规等相关专业的毕业生纷纷转行做webgis开发。 那么,今天小编从技术层面探讨一下,为什么建议大家不要仅仅停留在webgis,而要继续往前学习三维GIS开发&…

PclSharp1.12.0--均匀采样

一、均匀采样 均匀采样的原理类似于体素化网格采样方法,同样是将点云空间进行划分,不过是以半径r的球体,在当前球体所有点中选择距离球体中心最近的点替代所有点,注意,此时点的位置是不发生移动的。 球体半径选取越大…

yolov8-更换卷积模块-ContextGuidedBlock_Down

源码解读 class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate2, reduction16):"""args:nIn: the channel of input fea…

项目解决方案: 实时视频拼接方案介绍(下)

目 录 1.实时视频拼接概述 2.适用场景 3.系统介绍 4.拼接方案介绍 4.1基于4K摄像机的拼接方案 4.2采用1080P平台3.0 横向拼接 4.3纵横兼顾,竖屏拼接 5.前端选择及架设 5.1前端架设原则 5.1.1安装示意图 5.1.2安装调试基本原则 5.2摄像机及支架 5.…

深入分析Android运行时环境ART:原理、特点与优化策略

摘要 随着移动互联网的快速发展,智能手机的性能和功能日益强大,其中Android操作系统因其开放性和灵活性而占据主导地位。Android运行时环境(ART)作为执行应用程序代码的关键组件,在系统性能和用户体验方面起着至关重要…

三维可视化技术在设备管理系统中的应用

随着科技的进步,传统的设备管理方法已经不能满足现代企业的需求。为了更高效地管理资产,设备管理系统开始采用三维可视化动态技术。这种技术不仅能够帮助用户快速找到相应的设备,还能够展示设备的现场位置、所处环境、关联设备以及设备参数等…

Project_Euler-12 题解

Project_Euler-12 题解 题目 思路 我们可以从小到大枚举每一个三角形数&#xff0c;然后计算他们的约数个数&#xff0c;从而得到结果。 代码 #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <time.h&…

alibabacloud学习笔记07(小滴课堂)

讲解Sentinel自定义异常降级-新旧版本差异 讲解新版Sentinel自定义异常数据开发实战 如果我们都使用原生的报错&#xff0c;我们就无法得到具体的报错信息。 所以我们要自定义异常返回的数据提示&#xff1a; 实现BlockExceptionHandler并且重写handle方法&#xff1a; 使用F…

推荐我最近刚发现的5款实用软件

​ 我喜欢发现和分享一些好用的软件&#xff0c;我觉得它们可以让我们的工作和生活更加轻松和快乐。今天给大家介绍五款我最近发现的软件。 1.桌面工具——PowerToys ​ PowerToys是一款由微软开发的免费开源软件&#xff0c;旨在为Windows 10用户提供更多的自定义和增强功能…

无线鼠标键盘怎么连接电脑?这4个连接方法别错过!

“我新买了一个无线鼠标和键盘&#xff0c;想问问应该怎么将它们与电脑进行连接呢&#xff1f;请大家给我分享几个好用的方法吧&#xff01;” 无线鼠标和键盘已经成为现代办公和娱乐的必备工具&#xff0c;它们通过无线技术与电脑连接&#xff0c;省去了线缆束缚&#xff0c;让…

dvwa靶场xss通关

原理 XSS漏洞是攻击者将恶意代码注入到合法网页中&#xff0c;当用户浏览该页面时&#xff0c;恶意代码会被执行&#xff0c;从而获取用户敏感信息或进行其他攻击。 形成原因 网站对用户输入数据的过滤不严格或不完备&#xff0c;攻击者可以根据这个漏洞向网站提交恶意代码&am…

常用git 打tag命令

1.查看所有tag git tag 2.创建 v5.0.0的tag git tag v5.0.0 git tag &#xff08;创建后查看&#xff09; 3.推送到远程tag git push origin v5.0.0 4.删除远程tag git push origin --delete v5.0.0 5.删除本地tag git tag -d v5.0.0 6.添加带有备注信息的tag git tag v5.…

【Redis】Redis 实现分布式Session

Cookie 保存在客户端浏览器中&#xff0c;而 Session 保存在服务器上。客户端浏览器访问服务器的时候&#xff0c;服务器把客户端信息以某种形式记录在服务器上&#xff0c;这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了。 在实际工作…

护眼灯有效果吗怎么样?推荐五款值得入手的护眼台灯

随着护眼台灯被越来越多的人解锁新的护眼攻略&#xff0c;它的产品热度也越来越高&#xff0c;而且光线柔和&#xff0c;是一款非常不错的照明用具。但是也有不少用户反馈买到的护眼台灯效果不好&#xff0c;有时候还会觉得刺眼&#xff0c;有些不合格的台灯使用时间一久还会散…

Vue3_2024_3天【Vue3组合式API~响应式及toRefs】

第一&#xff1a;vue3 中可以两个script标签 第一个&#xff1a;声明组件名 第二个&#xff1a;setup语法糖&#xff08;默认 lang语言是js语言&#xff0c;修改语言须保持一致&#xff09; 若想去掉一个script标签&#xff08;声明组件名称&#xff09;&#xff0c;则可使用插…