神码ai火车头标题伪原创【php源码】

news2024/9/20 22:47:52

这篇文章主要介绍了如何把python 代码打包成可执行软件,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

火车头采集ai伪原创插件截图:

Python 程序封装-打包成exe程序

    • 前言
    • 一、 Python 打包工具—Pyinstaller
    • 二、打包具体过程
      • 1. 打包成仅包含一个独立的exe程序
      • 2. 打包成包含文件夹的程序,内有相关的依赖库(推荐)
      • 3. 其他的打包命令
    • 三、注意事项

欢迎学习交流!
邮箱: z…@1…6.com
网站: Zengfu Hou - Home

前言

常用的软件都是带有操作界面的(Graphical User Interface,GUI),其目的就是在用户不需要看懂程序 底层代码的同时也可以进行软件相关功能的操作,更便于用户与程序的交互。随着Python逐渐成为一种流行编程工具的同时,程序打包也成为部分用户的需求,然而相关博客很少,而新手入门往往不得其所。其实很简单,下面笔者分享自己打包的过程,以供参考!

一、 Python 打包工具—Pyinstaller

PyInstaller 是一个可以将 Python 程序打包成一个独立可执行文件的软件包。它通过读取已经编写好的 Python 脚本,分析代码执行需要的模块和库,然后将其依赖库一同打包转成可以直接脱离于python环境下独立运行的程序,目前已经支持 在Windows、Linux 和 Mac OS 上运行。简单的理解就是,通过对程序脚本的打包(尤其是带有操作界面的程序),可以获得一个完整的软件。

下面笔者简单介绍一下window操作系统的打包命令和打包过程,具体如下:

  • 利用cmd命令进入python的安装路径,利用下面命令安装pyinstaller:
> cd D:\Program Files\Python37\Scripts   # 一般进入这个文件夹下进行安装就行
> pip install pyinstaller    # 打包工具安装命令

二、打包具体过程

下面是打包中常用命令,不同的命令之间可以进行组合,根据用户需求进行安排,具体命令如下:

-i 给应用程序添加图标
-F 只生成一个exe格式的文件
-D 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c 有黑窗口
-w 去掉黑窗口

1. 打包成仅包含一个独立的exe程序

程序打包具体过程:

  • 利用dos命令进入需要打包的程序文件夹下,下面是笔者的具体文件路径,具体操作命令如下:
> cd C:\Users\dream\Desktop\CSDN\ITAA_v1.0401.h.1  # 进入这个文件夹

在这里插入图片描述
如上图所示,在该需要打包的程序文件夹中,Main_ITAA.py就是我们程序的入口(在python中点击该程序就可以直接运行),下面我们将其打包成一个只有exe的可执行程序,具体命令如下:

pyinstaller -F -w -i logo.ico Main_ITAA.py

下面是打包命令执行后程序打包的编译过程,具体如下:
在这里插入图片描述
这时候我们会发现程序中多出来一个dist的文件夹,打包好的程序就放在这个文件夹下面,
在这里插入图片描述
下面我们看一下打包好的程序,点击就可以直接运行,其中图像的logo可以根据自己的需要自动设置。
在这里插入图片描述

2. 打包成包含文件夹的程序,内有相关的依赖库(推荐)

具体命令如下:

pyinstaller -D -c -i logo.ico Main_ITAA.py  # 有黑窗口,包含文件夹
pyinstaller -D -i logo.ico Main_ITAA.py  # 有黑窗口,包含文件夹(默认有黑窗口)

在这里插入图片描述
下面是打包完成的程序,一般该程序打包完成后,软件内部的我们自己建立的文件夹和python程序调用的程序需要放到打包好的程序文件下面才能运行,否则程序运行过程中容易出现错误,具体需要移动的文件及文件夹如下:

  • logo
  • help
  • data
  • models
  • svm-predict.exe
  • svm-scale.exe
    在这里插入图片描述
    下面就是打包完成后多出来的一个文件夹,打包程序在该文件夹下,上面的六个文件需要移动到该程序下
    在这里插入图片描述
    然后从中找到相关的程序Main_ITAA.exe应用程序,发送到桌面,就与我们常用程序没有什么区别了。
    在这里插入图片描述
    在这里插入图片描述
    点击运行效果如下:
    在这里插入图片描述
    程序完全运行,没有问题。

3. 其他的打包命令

下面是一些其他的打包程序,根据自己需要进行适当修改,具体如下:

  • 无黑窗口且程序带有logo的单独exe程序
pyinstaller -F -w -i logo.ico Main_ITAA.py
  • 有黑窗口且程序带有logo的单独exe程序
pyinstaller -F  -i logo.ico Main_ITAA.py
pyinstaller -F -c -i logo.ico Main_ITAA.py
  • 程序带有logo,生成程序包含文件夹(内有依赖库)
pyinstaller -D -i logo.ico Main_ITAA.py # 有黑窗口
pyinstaller -D -w -i logo.ico Main_ITAA.py  # 无黑窗口

三、注意事项

  • 最后可执行程序的图标必须是ico格式,否则无法显示出来;
  • 程序内部的logo不能是jpg格式(无法显示),要使用png格式(经测试,可以显示出来);
  • pyinstaller只能翻译python脚本,程序引用的其他程序或者相关文件在打包成一个exe程序时,往往会出现图标无法显示,相关文件无法加载错误,所有尽量打包成文件夹模式,方便后期外部文件的修改;
  • 如果程序出现黑框闪现情况,请使用保留黑窗的打包模式。

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

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

相关文章

以指标驱动,保险、零售、制造企业开启精益敏捷运营的新范式

近日,以“释放数智生产力”为主题的 Kyligence 用户大会在上海前滩香格里拉大酒店成功举行。大会包含上午的主论坛和下午的 4 场平行论坛,并举办了闭门会议、Open Day 等活动。来自金融、零售、制造、医药等行业的客户及合作伙伴带来了超过 23 场主题演讲…

CSS调色网有哪些

本文章转载于湖南五车教育,仅用于学习和讨论,如有侵权请联系 1、https://webgradients.com/ Wbgradients 是一个在线调整渐变色的网站 ,可以根据你想要的调整效果,同时支持复制 CSS 代码,可以更好的与开发对接。 Wbg…

selenium 截屏

当前环境: Windows 10 Python 3.7 selenium 3.141.0 Google Chrome 115.0.5790.110 (64 位) from selenium import webdriver import base64if __name__ __main__:#driver webdriver.Chrome()driver.get(https://www.baidu.com/)# 1.…

服务端高并发分布式结构演进之路

目录 一、常见概念 1.1基本概念 二、架构演进 2.1单机架构 2.2应用数据分离架构 2.3应用服务集群架构 2.4读写分离 / 主从分离架构 2.5引入缓存 —— 冷热分离架构 2.6垂直分库 2.7业务拆分 —— 微服务 一、常见概念 1.1基本概念 应用(Application&am…

powerdesigner各种字体设置;preview字体设置;sql字体设置

1.设置左侧菜单: 步骤如下: tools —> general options —> fonts —> defalut UI font ,选择字体样式及大小即可,同下图。 2.设置preview字体大小(sql预览) 步骤如下: tools —> general o…

问道管理:两市股指冲高回落,沪指一度突破3300点,券商、保险板块领涨

8月4日,两市股指高开高走,沪指一度突破3300点。开盘后,沪指、深成指涨近1%,创业板指、上证50指数涨幅超1%。职业方面,券商、稳妥板块领涨,传媒、石油、半导体、银行、煤炭等板块均上扬,互联金融…

Oracle锁的学习

Oracle数据库中的锁机制 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 在数据库中有两种基本的锁类…

拓展商业视野:利用企业变更记录 API 剖析企业策略与决策

引言 随着商业竞争日益激烈,企业的战略与决策成为成功与否的关键因素。在这样的背景下,利用变更记录查询API成为了企业洞察竞争对手、揭示市场动态、发现商业机会的重要工具。本文将深入探讨变更记录查询API的应用,揭示它如何拓展商业视野&a…

【项目 进程14】2.30 守护进程(1) 2.31 守护进程(2)

文章目录 2.30 守护进程(1)终端进程组会话进程组、会话、控制终端之间的关系进程组、会话操作函数守护进程2.31 守护进程(2)守护进程的创建步骤写一个守护进程,每隔2s获取一下系统时间,将这个时间写入到磁盘…

【枚举+trie+dfs】CF514 C

Problem - 514C - Codeforces 题意: 思路: 其实是trie上dfs的板题 先把字符串插入到字典树中 对于每次询问,都去字典树上dfs 注意到字符集只有3,因此如果发现有不同的字符,去枚举新的字符 Code: #in…

会用这个医疗小技巧,升职加薪不加班!

在医药领域,温湿度监控是确保药品质量和安全性的重要环节。药品的生产、存储、运输和展示过程中,温湿度变化可能对药品的有效性产生不良影响,因此需要实时监测和管理环境条件。 通过有效的温湿度监控系统,医药企业和医疗机构能够确…

docker系列--解决hyper-v导致docker无法启动问题

一、问题 windows docker desktop 启动报错异常,导致docker无法启动成功 我们看到问题出在hyper-v的问题上,搜索解决方法,官网常见问题如下 Overview | Docker Documentation 二、解决 Hyper-V 已安装并正常工作 在BIOS中启用虚拟化 Wind…

mapstruct 错误 java.lang.NoSuchMethodError: Ljava/lang/Double 错误

问题描述 在使用 mapstruct 的过程中遇到错误 java.lang.NoSuchMethodError: Ljava/lang/Double 错误 问题解决 maven clean, 然后 maven install Build -> Rebuild Project 执行 maven install 时, 如果报错 找不到 xxx 类, 但 ctrl鼠标左键 发现可以点进去这个类, 那…

[openCV]基于赛道追踪的智能车巡线方案V1

import cv2 as cv import os import numpy as npimport time# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir:文件夹根目录输入 ext: 扩展名返回: 文件路径列表""&quo…

【Axure 教程】动态面板

【动态面板】是 Axure 中另外一个神级的元件,它的江湖地位可以说跟【中继器】不相上下,【动态面板】提供了简单的配置,却可以实现非常丰富的效果,在实际设计中应用非常广泛。 对于刚入门的产品经理来说,学习【动态面板…

02 持久层 - 客制化

文章目录 OverView[0] Provision[1] New Package[2] Create Table[3] Insert MockData[4] Check Data OverView 创建 ABAP Package客制化底表向底表写入测试数据查看测试数据 [0] Provision 没有创建 BTP Trail User Account 的需先申请账号,并通过 Eclipse 连接到…

「2024」预备研究生mem- 等差数列与列项相消Sn的最值奇数项与偶数项

一、等差数列与列项相消 二、Sn的最值 三、奇数项与偶数项 方法二:

一文学透设计模式——工厂模式

工厂模式 概念 牛马人生公司最近开启了线上直播,直播中牛马人生公司宣称他们建造了一家世界上最为先进的工厂,任何人只要去到工厂面前,告诉工厂你要什么牌子的汽车,工厂就会给你一辆什么牌子的汽车。 这引起了粉丝朋友的注意&a…

App Cleaner Uninstaller for Mac 苹果电脑软件卸载工具

App Cleaner & Uninstaller 是一款非常有用的 Mac 应用程序清理和卸载工具。它可以彻底地清理系统中的应用程序、扩展和残留文件,以释放磁盘空间并优化系统性能。 此外,它还提供了磁盘空间监控和智能清理建议等功能,使用户可以轻松地管理…

Java自定义校验注解实现List、set集合字段唯一性校验

文章目录 一: 使用场景二: 定义FieldUniqueValid注解2.1 FieldUniqueValid2.2 注解说明2.3 Constraint 注解介绍2.4 FieldUniqueValid注解使用 三:自定义FieldUniqueValidator校验类3.1 实现ConstraintValidator3.2 重写initialize方法3.3 重…