Python打包(问题记录,带解决)

news2024/11/11 5:45:07

引言

文章用于测试在Python3.8的版本,打包Obspy地震包,最后集成到PyQt5上。

部署或冻结应用程序是 Python 项目的重要组成部分, 这意味着捆绑所有必需的资源,以便应用程序找到它需要的一切 能够在客户端计算机上运行。 但是,由于大多数大型项目不基于单个 Python 文件,因此分发这些 应用程序可能是一个挑战。

以下是您可以使用的一些分发选项:

  1. 发送包含应用程序内容的普通 ZIP 文件。

  2. 构建一个合适的 Python 包(轮子)。

  3. 将应用程序冻结为单个二进制文件或目录。

  4. 提供本机安装程序(微星,dmg)

如果选择选项 3,请考虑使用以下工具之一:

  • FBS

  • PyInstaller

  • cx_Freeze

  • py2exe

  • py2app

  • 公文包

由于Qt for Python是一个跨平台的框架,我们专注于三大解决方案。 Qt支持的平台:Windows,Linux和macOS。

下表总结了对这些打包工具的平台支持:

请注意,只有 fbscx_Freeze、公文包(briefcase)和 PyInstaller 满足我们的跨平台要求。

由于这些是命令行工具,因此您需要特殊的钩子或脚本来处理资源 例如图像、图标和元信息,然后再将它们添加到您的包中。此外 这些工具不提供更新应用程序包的机制。

要创建更新包,请使用 PyUpdater,这是一个工具 围绕 PyInstaller 构建。

fbs 工具为用户提供了一个很好的 UI 来安装 申请分步。

 注意:
        仅 Qt for Python 5.12.2 及更高版本支持部署。

打包代码如下

from obspy import read,Stream   # 从obspy模块中导入read函数
#read函数
# 1. 可以传入一个seed或者mseed文件,表示从文件中读取数据
# 2. 不传参数,模块会自动生成一个地震数据流对象,这里我们传入一个文件用于测试
pathname = r"JS.201508301302.0002.seed"
st = read(pathname,format="mseed") # 指定文件的类型为mseed格式
print(st)

fbs部署

FBS 为打包、创建安装程序和签名提供了一个强大的环境 应用。它还允许您管理应用程序的更新。由于 fbs 基于 PyInstaller,它支持Linux,macOS和Windows。

有关更多详细信息,请参阅 fbs 教程和 fbs 手册。

1.1fbs安装

pip install fbs

fbs的免费版本仅支持Python 3.5和3.6。

请从获取fbs Prohttps://build-system.fman.io/pro.

本人作者Python版本为3.8,好了,用不了,下一个

2 Pyinstaller

2.1安装

pip installer pyinstaller

2.2打包命令

pyinstaller 文件路径名

测试过,打包Obspy模块失败,有成功的小伙伴可以分享一下成功的经验

3 cx_Freeze

3.1 安装

pip install cx_freeze

3.2 冻结应用程序

有三个选项可以使用cx_Freeze:

  1. 使用 cxfreeze 脚本。

  2. 创建 setup.py 脚本以生成项目。

  3. 直接使用模块类(用于高级目的)。

以下部分介绍前两个用例。

3.2.1使用可执行文件

cxfreeze 文件名

运行报错,Java的问题?看不懂,下一个 

3.2.2 使用安装工具脚本

对于此过程,您需要一个名为 setup.py 的附加脚本:

import sys
from cx_Freeze import setup, Executable

setup(name = "MyApp",
      version = "0.1",
      description = "My GUI App",
      executables = [Executable("hello.py")])

报错一样 

pip uninstall cx_freeze

4 Briefcase

Briefcase是一种打包工具,可让您为 Python 应用程序创建独立包。它支持以下安装程序格式:

  • 适用于 macOS 的.app应用程序捆绑包

  • 适用于 Windows 的 MSI 安装程序

  • AppImage for Linux

有关更多详细信息,请参阅官方文档。

4.1 安装

pip install briefcase

TMD用了这命令似乎他把Python的pip包给卸载了

 4.2 重新生成

安装pip 

python -m ensurepip --upgrade

更新pip

python -m pip install --upgrade pip

安装 Briefcase

pi'p install  Briefcase

你还需要:linux上的docker,windows上的WixToolset,

 报错了,没搞懂,应该是我没安装WixToolset的原因

坑一大堆,凉凉了,先记录一下吧,以后有机会在修改一下。

参考链接:Qt for Python Deployment — Qt for Python

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

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

相关文章

Ethereum 基础(一)

以太坊(Ethereum)是社区运行的技术,为加密货币以太币(ETH)和数千个去中心化应用程序提供动力。 ethereum.org是您进入以太坊世界的门户。这项技术是新的、不断发展的——有个向导会有帮助。如果你想深入研究,我们建议你这样做。 …

Linux内核定时器

1.概念 在linux内核内部开发者设计了内核定时器,它的工作原理和硬件定时器一样,使用它不需要关注底层的实现,只需要分配定时器对象,初始化对象,启用定时器即可,当定时时间到达之后执行定时器的处理函数。 …

2022年第十二届APMCM亚太地区数学建模竞赛1月加赛E题翻译以及思路

中文2022年亚洲及太平洋地区建模数学竞赛问题E有多少颗核弹可以摧毁地球?1945年8月6日,第二次世界大战已接近尾声。为了尽快结束战争,美国在日本广岛投下了名为 "小男孩" 的第二颗原子弹。这样一颗原子弹炸死了广岛的200000人&…

硬盘容量计算

硬盘容量(Hard drive capacity)以兆字节(MB)或千兆字节(GB)为单位,主流硬盘容量为500G~2TB,影响硬盘容量的因素有单碟容量和碟片数量。许多人发现,计算机中显…

Java--面向对象经典练习题

文章内容 一、文字版格斗游戏 二、对象数组1 三、对象数组2 四、对象数组3 五、对象数组4 题目代码如下: 文字版格斗游戏 格斗游戏,每个游戏角色的姓名,血量,都不相同,再选定人物的时候(new对象的时候)&#xf…

(Java高级教程)第三章Java网络编程-第一节1:网络编程必备网络知识1之网络初识和网络协议

文章目录一:计算机网络基本概念二:计算机网络发展三:网络协议(1)生活中的协议(2)网络协议(3)协议是谁制定的注意:本节会总结一些必要的网络知识,便…

第03讲:HTTP操作之ElasticSearch映射操作

3.1.3、映射操作 有了索引库,等于有了数据库中的 database。 接下来就需要建索引库(index)中的映射了,类似于数据库(database)中的表结构(table)。 创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一…

P11 PyTorch Momentum

参考: 关于梯度下降与Momentum通俗易懂的解释_ssswill的博客-CSDN博客_梯度 momentum 前言: P9讲梯度的时候,讲到过这种算法的梯度更新方法 这边重点讲解一下原理 Momentum算法又叫做冲量算法,其迭代更新公式如下: 实…

【Vue中使用Echarts】响应式布局flexible.js+rem适配方案

文章目录一、vue集成flexible方案第一种:在编译的时候自动转换(px2rem-loader)第二种:直接在写css样式的时候转换(cssrem)二、安装&配置lib-flexible.js三、安装插件cssrem一、vue集成flexible方案 先介绍几个基本的概念 px像素(Pixel&…

LeetCode分类刷题---数组篇

刷题班数组1.二分查找704.二分查找35.搜索插入位置34.在排序数组中查找元素的第一个和最后一个位置。69.X的平方和367.有效的完全平方数2.移除元素27.移除元素283.移动零844.比较含退格的字符串977.有序数组的平方3.长度最小的子数组209.长度最小的子数组904.水果成蓝76.最小覆…

2023-01-05 长亭科技 Go 后端开发实习生二面

由于面试官前几天 🐏 了,在 HR 面后补了技术二面,不过问得倒也不难,但还是记录下。 1、请做 3 ~ 5 分钟的自我介绍。 2、你说研究生的方向是漏洞挖掘和模糊测试,可以介绍一下吗? 3、简单介绍下缓冲区溢出漏…

2022年中国特色智能工厂领航制造业升级分析报告

易观:当前,新一轮的科技革命和产业变革正在重塑世界格局,科技创新也成为影响国家竞争力的决定性因素。在全球制造业格局重塑的过程中,智能工厂作为全球智能制造产业实践的示范标杆与标准载体,是引领全球制造业企业与工…

机器学习中的数学原理——逻辑回归

这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下《白话机器学习中的数学——逻辑回归》!什么是逻辑回归算法逻辑回归 (Logistic…

【信管6.3】成本挣值计算

成本挣值计算铺垫了那么久,不知道大家期待不期待。总算到了挣值计算这一课,这个名字很奇怪呀,什么叫做挣值?成本不就是我们的投资吗?这个挣值到底是要干嘛?带着这些疑问,我们就来看看挣值计算到…

2022全年度奶粉十大热门品牌销量榜单

随着居民收入水平的提升、消费观念的转变及健康饮食意识的逐渐增强,消费者对食品品质的要求也越来越高,奶粉市场也同样如此。当前,国内婴幼儿奶粉市场规模呈稳步增长态势,同时,“三孩政策”的发布实施,也利…

C++模板 - 提高编程

引言 本阶段主要针对C泛型编程和STL技术做详细的讲解,探讨C更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 例如生活中的模板: 一寸照片模板: 模板的特点: 模板不可以直接使用&#…

制造业项目管理软件如何帮助企业做好项目费用管理?

在项目导向型制造型企业中,项目的成本管理与费用控制是企业进行项目评价与利润管控、指导市场选择和项目筛选的重要手段。而传统的手工管理模式下,制造企业管理层很难快速了解到哪些项目出现了延误、哪些项目发生了费用超支、哪些项目产生了变更等问题与…

C#,图像二值化(14)——全局阈值的最佳迭代算法及源代码

1、图像二值化 图像二值化是将彩色图像转换为黑白图像。大多数计算机视觉应用程序将图片转换为二进制表示。图像越是未经处理,计算机就越容易解释其基本特征。 二值化过程 在计算机存储器中,所有文件通常以灰度级的形式存储,灰度级具有从0…

欢迎来到,个人数据安全“世界杯”

2022年国际足联世界杯,巴西止步8强,克罗地亚挺到半决赛,阿根廷与法国双强对决最终阿根廷点球大战胜出……精彩纷呈的世界杯已经落幕,而我们因足球而起的激情和热爱不会消退。世界杯是属于每个人的,每个球迷在世界杯中都…

03-redis篇 架构设计之一: 主从复制

目录 第一篇: 主从复制 二. 实践操作 1. 准备工作 -> ps: 安装redis的文章: docker版 的redis安装 2. 制作docker镜像 -> 2.1 制作redis6379 -> 2.2 制作redis6380 -> 2.3 制作redis6381 3. 查看主镜像redis6379的ip地址 -> 3.1 IPAddress位置在这: …