Python实用记录(十三):python脚本打包exe文件并运行

news2024/11/17 8:22:12

文章目录

  • 打包准备
    • 文件准备
    • 环境安装
  • 具体运行
    • 第一步
    • 第二步
    • 第三步
  • 注意

打包准备

文件准备

这里准备一个简单的python代码(打开电脑摄像头)
在这里插入图片描述


import cv2
if __name__ == '__main__':
    cap = cv2.VideoCapture(0)
    ret, frame = cap.read()
    while ret:
        ret, frame = cap.read()
        cv2.imshow("frame", frame)
        if cv2.waitKey(1) & 0xFF == 27:
            break
    cv2.destroyAllWindows()
    cap.release()

环境安装

pip install pyinstaller

具体运行

第一步

打开anaconda cmd进入到test_o.py的目录下,输入pip install pyinstaller安装。在这里插入图片描述

第二步

输入pyinstaller -D -i E:\Users\Desktop\1.ico .\test_o.py

在这里插入图片描述
在这里插入图片描述

指令参数说明
-F, –onefile打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
-D, –onedir打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护
-K, –tk在部署时包含 TCL/TK
-a, –ascii不包含编码.在支持Unicode的python版本上默认包含所有的编码
-d, –debug产生debug版本的可执行文件
-w,–windowed,–noconsole使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)
-c,–nowindowed,–console使用控制台子系统执行(默认)(只对Windows有效)
-s,–strip可执行文件和共享库将run through strip.注意Cygwin的strip往往使普通的win32 Dll无法使用.
-X, –upx如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note)
-o DIR, –out=DIR指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下.
-p DIR, –path=DIR设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源
–icon=<FILE.ICO>将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标 pyinstaller -i ico路径 xxxxx.py.
-o DIR, –out=DIR指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下.
–icon=<FILE.EXE,N>将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)
-v FILE, –version=FILE将verfile作为可执行文件的版本资源(只对Windows系统有效)
-n NAME, –name=NAME可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字

第三步

我们可以看到生成以下目录
在这里插入图片描述
点击dist,可以看到同名的文件,然后在里面找到exe文件即可运行。在这里插入图片描述
点击exe运行。
在这里插入图片描述
然后就可以将test_o这个文件压缩发给别人即可。

注意

  • 如果遇到缺少文件的情况,则说明没有将依赖包打包完全,则通过找到Anaconda对应依赖的安装包并将安装包放在exe同级目录下运行。

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

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

相关文章

希亦洗地机和添可洗地机哪个好用?口碑洗地机详细对比

在当今这个科技发达的社会&#xff0c;为了能够帮助人们高效率的工作&#xff0c;各色各样的发明不断出现。扫地、拖地是我们日常生活中再普通不过的一项家务了&#xff0c;对于小型的房子而言打扫起来就比较轻松&#xff0c;对于繁忙的上班族打扫空间较大的房子就很困难&#…

Undo Log详解

undo log 基本概念 undo log是一种用于撤销回退的日志&#xff0c;在数据库事务开始之前&#xff0c;MySQL会先记录更新前的数据到undo log日志文件里面&#xff0c;当事务回滚时或者数据库崩溃时&#xff0c;可以利用 undo log来进行回退 Undo Log产生和销毁&#xff1a;Und…

redis(2)

缓存:缓存是一个高速数据交换的存储器&#xff0c;使用它可以迅速的访问和操作数据 因为单体应用已经不适用于现在的环境了,所以最终变成分布式系统,本地缓存已经不适用了 1)比如说张三用户访问了应用程序nginx把请求分配给A服务器 A机器查询数据库&#xff0c;并且把数据库的结…

模型实战(11)之win10下Opencv+CUDA部署yolov5、yolov8算法

win10下Opencv+CUDA部署yolov5、yolov8算法 测试环境:AMDRH7000+RTX3050+win10+vs2-10+opencv455+cuda11.7关于opencv470+contrib+cuda的编译,可以详见:Win10下Opencv+CUDA联合编译详细教程本文代码同时支持yolov5、yolov8两个模型,详细过程将在文中给出,完整代码仓库最后…

自动化测试真的能提效吗?怎么才能真正掌握自动化测试技巧呢?

近年来&#xff0c;随着软件开发速度的提高&#xff0c;自动化测试已经成为了一个必要的环节。但是&#xff0c;对于自动化测试&#xff0c;有些人认为它能够大幅提升效率&#xff0c;而有些人则认为自动化测试无法替代手工测试&#xff0c;并且实施自动化测试需要投入大量的时…

vue3 - 超详细头像裁剪并上传到服务器,支持按照自定义比例裁切图片效果组件插件(详细示例源码教程,一键复制运行开箱即用)

效果图 大部分都贼难用,而且全是bug。。并且很少有 vue3的,全是 vue2。。 本博客实现了在 vue3.js 项目中,实现图像上传后并按一定的比例进行裁剪的示例功能源码,支持各种参数、样式修改, 示例有 Element Plus + Vue3.js 版本,也有纯 Vue3.js 版本(无 UI 框架搭配),按…

【机器学习】西瓜书课后习题参考答案—第一章

记录西瓜书课后习题的思考与参考答案。 1.1 表1.1中若只包含编号为1和4的两个样例&#xff0c;试给出相应的版本空间。 答&#xff1a; 版本空间&#xff1a;与训练集一致的“假设集合”&#xff0c;称之为“版本空间”&#xff08;version space&#xff09; 只包含编号为1和…

Vue-cli搭建项目(包含Node.js安装和ElementUI安装)

目录 一、vue-cli 二、Node.js npm&#xff1a; Node.js安装&#xff1a; 测试&#xff1a; 三、Vue-cli搭建项目 使用HBuildex 创建一个vue.js项目 创建的自己的组件&#xff1a; 组件路由&#xff1a; 四、ElementUI安装 1.ElementUI下载&#xff1a; 2.在main.js中…

Echarts图表X轴文本过长导致展示不全

今天就遇到如题目所说问题。遇到问题当然取看官方文档喽&#xff0c;链接奉上ECharts-axis 博主使用的ECharts版本号为5.4.5 这个问题效果图如下&#xff1a; 可以看到x轴文本太长&#xff0c;导致部分x轴标签无法正常显示&#xff0c;在这里提供两种解决办法&#xff0c;并告诉…

OSI七层网络模型+TCP/IP四层模型

OSI七层模型&#xff1a; 物理层&#xff1a;主要定义物理设备标准&#xff0c;如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流&#xff08;就是由1、0转化为电流强弱来进行传输&#xff0c;到达目的地后再转化为1、0&#xff0c;也就…

6、Flutterr聊天界面网络请求

一、准备网络数据 1.1 数据准备工作 来到网络数据制造的网址,注册登录后,新建仓库,名为WeChat_flutter;点击进入该仓库,删掉左侧的示例接口,新建接口. 3. 接着点击右上角‘编辑’按钮,新建响应内容,类型为Array,一次生成50条 4. 点击chat_list左侧添加按钮,新建chat_list中的…

华为OD机试2023年最新题库(JAVA)

目录 华为OD机试是什么&#xff1f;华为OD面试流程&#xff1f;华为OD机试通过率高吗&#xff1f;华为OD薪资待遇&#xff1f;华为OD晋升空间&#xff1f;华为OD刷题列表&#xff0c;一天三题&#xff0c;刷出算法新高度&#xff0c;刷出人生新际遇。 大家好&#xff0c;我是哪…

什么是http代理504网关超时错误,要如何修复?

当你在使用 HTTP 代理时&#xff0c;有时候会遇到"504 网关超时"错误&#xff0c;这个错误看起来非常可怕&#xff0c;但实际上它并不是一个很难解决的问题。在本文中&#xff0c;我将向你介绍 504 错误的定义&#xff0c;以及为什么我们会遇到这个错误&#xff0c;同…

babysql

打开界面是一个登录框&#xff0c;所以直接使用的万能公式&#xff0c;但是没用出发了报错 结合提示来看&#xff0c;题目应该是过滤掉了or 尝试大小写绕过&#xff0c;失败了 尝试双写绕过&#xff0c;成功绕过限制 接下来就判断字段数&#xff0c;发现by也被过滤掉了 登是登上…

CAM350 PCB开短路检查指导

CAM350 PCB开短路检查指导 Layout完成后&#xff0c;通过DRC和华秋DFM检查没有问题后&#xff0c;使用CAM350进行开短路的检查&#xff0c;没有问题后可转交制版厂。 ①首先通过AD生成IPC文件&#xff0c;下图为生成步骤&#xff1a; File→Assembly Outputs→Test Point Repo…

新形势下,如何进行智慧园区移动应用建设?

智能化工园区通过信息化实现工业管理的数字化和网络化&#xff0c;实现对生产过程的全面监控和实时数据采集。这使企业能够更好地管理&#xff0c;及时发现问题并采取相应的措施来降低成本。此外&#xff0c;智慧化管理提高了企业资源的使用效率&#xff0c;避免浪费和重复利用…

异常___

规则&#xff1a;玩家是异常机器人&#xff0c;要突破正常机器人&#xff08;防火墙&#xff09;的扫描封锁攻击&#xff0c;到达目的地。 &#xff08;1&#xff09; 教学内容&#xff1a;指令的形式和运行方法。 简单的说就是脚本语言&#xff0c;指令的形式是给出固定顺序…

行为型模式-中介者模式

中介者模式 概述 一般来说&#xff0c;同事类之间的关系是比较复杂的&#xff0c;多个同事类之间互相关联时&#xff0c;他们之间的关系会呈现为复杂的网状结构&#xff0c;这是一种过度耦合的架构&#xff0c;即不利于类的复用&#xff0c;也不稳定。例如在下左图中&#xf…

协方差矩阵

目录 1.方差和协方差的定义 2.协方差矩阵 3. 协方差矩阵的应用 3.1 对两个类内协方差矩阵进行对角化 3.2 机器学习中的协方差矩阵应用小结 4. 协方差矩阵中心对齐 1.方差和协方差的定义 2.协方差矩阵 3. 协方差矩阵的应用 3.1 对两个类内协方差矩阵进行对角化 对两个…

【Linux】动态链接和静态链接

函数库一般分为静态库和动态库两种 动态库&#xff1a;使编译器对用户的程序进行动态链接 动态链接&#xff1a;拷贝的是动态库中当前程序所需代码的地址到可执行程序中的相关位置&#xff0c;可在执行时链接到动态库中的相关&#xff0c;即动态链接的可执行程序再运行时仍然依…