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

引言

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

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

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

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

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

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

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

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

由于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,好了,用不了,下一个

pip uninstall fbs

2 Pyinstaller

2.1安装

pip installer pyinstaller

2.2打包命令

pyinstaller 文件路径名

测试过,打包Obspy模块失败,报错信息粘贴如下,有成功的小伙伴可以分享一下成功的经验

 大概的报错信息是:不支持MSEED类型的数据

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值