返回顶部
首页 > 资讯 > 操作系统 >怎样为Linux打包Python应用
  • 907
分享到

怎样为Linux打包Python应用

2023-06-16 02:06:32 907人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关怎样为linux打包python应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在基于 Debian 的操作系统(例如 Debian 或 Eleme

本篇文章给大家分享的是有关怎样为linux打包python应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

怎样为Linux打包Python应用

在基于 Debian 的操作系统(例如 Debian 或 Elementary OS)上安装 Python 应用的一种方法是使用 dh_virtualenv 工具。它可以构建一个 .deb 包,在应用之外封装了一个 Python 虚拟环境,并在安装时进行部署。

使用 dh_virtualenv 打包

首先,你需要安装 dh_virtualenv 所需的工具。dh_virtualenv 的文档提供了所有安装选项。在基于 Debian 的系统上,我输入:

apt-get install dh-virtualenv devscripts

尽管不需要 devscripts 包,但它可以简化后续操作。

现在,创建一个目录来保存源码。由于这是一个本地的、非官方的 Httpie 打包,因此我将其称为 myhttp。接下来,让我们在 myhttp 内创建一些文件,向 Debian 构建系统提供元数据。

首先,创建 debian/control 文件:

Source: myhttpsection: pythonPriority: extraMaintainer: Jan Doe <jandoe@example.org>Build-Depends: debhelper (>= 9), python3.7, dh-virtualenv (>= 0.8)Standards-Version: 3.9.5 Package: myhttpArchitecture: anyPre-Depends: dpkg (>= 1.16.1), python3.7, ${misc:Pre-Depends}Depends: ${misc:Depends}Description: http client Useful for doing stuff

那么这些是什么信息呢?正如 Debian 文档指出的:

“第 1&ndash;7 行是源码包的控制信息。第 9&ndash;13 行是二进制包的控制信息。”

以下是我使用的:

  • Section 的值对于我们来说大多没有意义,但需要存在。它对给引导式 UI 安装程序提供信息是有意义的,但对于这个包来说,没有意义。

  • Priority 对像这样的第三方包的正确值是 extra

  • 强烈建议在 Maintainer 字段中填写正确的联系人信息。但不一定非得是你的个人电子邮件,如果包由团队维护,并且你希望将问题发送到团队的邮件别名,例如 Infrastructure Team <infra-team-list@company.example.com>

  • Build-Depends 字段标识你需要 debhelperpythondh-virtualenv 来构建包:包构建过程中将确保这些依赖项在包构建时已安装。

  • Standards-Version 字段主要给人看。它表明你遵循的指南。本指南基于 dh-virtualenv 的官方文档,它是基于 Debian 的 3.9.5 指南。最好一直将源码包和二进制包命名相同。

  • Architecture 字段应为 Any,因为除非虚拟环境可能包含一些特定于体系结构的文件。否则,最好选择该字段为 any

  • 保持 Pre-Depends 列表不变:它是一种非常严格的依赖关系形式,你很少会需要比这里建议的最小依赖更多的依赖项。依赖项通常由构建系统准确计算,因此没有理由手动指定它们。

  • 如果你的包主要用于内部,那么 Description 字段可能只需要最少的信息或者指向公司 wiki 的链接,不然更多的信息会更有用。

然后创建 debian/compat 文件,它主要出于历史目的而存在:

$ echo "9" > debian/compat

接下来,创建更新日志以告知包用户自上次发布以来发生了什么变化。最简单的方法是使用 dch --create 创建模板,然后填写值。

填写后,它看起来像:

myhttp (2.0.0-1) stable; urgency=medium   * Initial release.  -- Jan Doe <jandoe@example.org>  Fri, 27 Mar 2020 01:09:22 +0000

现在你需要告诉工具安装 HTTPie,但是哪个版本?

创建一个宽松版本的 requirements.in 文件:

httpie

通常,宽松的需求文件将仅包含项目的直接依赖项,并在需要时指定最低版本。不一定总是需要指定最低版本:这些工具通常偏向于将依赖关系转化为“可能的最新版本”。如果你的  Debian 包与一个内部 Python 包相对应,这是内部应用中的一种常见情况,那么宽松的需求文件看起来将很相似:仅包含包名的一行。

然后使用 pip-compile(可通过安装 PyPI 包 pip-tools 获得):

$ pip-compile requirements.in > requirements.txt

这会生成一个严格的依赖文件,名为 requirements.txt

## This file is autogenerated by pip-compile# To update, run:##    pip-compile requirements.in#certifi==2019.11.28       # via requestschardet==3.0.4            # via requestshttpie==2.0.0             # via -r requirements.inidna==2.9                 # via requestspygments==2.6.1           # via httpierequests==2.23.0          # via httpieurllib3==1.25.8           # via requests

最后,写一个 debian/rules 文件来创建包。因为 dh_virtualenv 会处理所有困难的事,因此规则文件很简单:

#!/usr/bin/make -f %:        dh $@ --with python-virtualenv --python /usr/bin/python3.7

确保指定 Python 解释器。默认它会使用 /usr/bin/python,这是 Python2,但是你应该使用一个受支持的 Python 版本。

完成了,接下来就是构建包:

$ debuild -b -us -uc

这会在父目录生成一个类似 myhttp_2.0.0-1_amd64.deb 的文件。该文件可在任何兼容的系统上安装。

通常,最好在同一平台上构建用于特定平台(例如 Debian 10.0)的 Debian 包。

你可以将此 Debian 包保存在软件仓库中,并使用例如 Ansible 的工具将其安装在所有相关系统上。

给基于 Debian 的系统的打包应用是一个有着多个步骤的过程。使用 dh_virtualenv 将使过程变得简单明了。

以上就是怎样为Linux打包Python应用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网操作系统频道。

--结束END--

本文标题: 怎样为Linux打包Python应用

本文链接: https://lsjlt.com/news/282068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎样为Linux打包Python应用
    本篇文章给大家分享的是有关怎样为Linux打包Python应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在基于 Debian 的操作系统(例如 Debian 或 Eleme...
    99+
    2023-06-16
  • python打包为linux可执行文件
    1、将python文件打包后(dist及log文件不需要打包)上传至linux服务器,同一目录下 注:不要打包成zip格式,zip从windos上传至linux解压后会存在编码格式不一致的问题 2、...
    99+
    2023-08-31
    python linux 开发语言
  • PyCharm新手指南:打包Python应用为EXE的步骤
    PyCharm新手指南:打包Python应用为EXE的步骤,需要具体代码示例 Python作为一种流行的编程语言,拥有强大的生态系统和丰富的库,可以应用于各种领域。在开发Python应...
    99+
    2024-02-22
    pycharm exe 打包 python脚本
  • 如何在 Linux 上打包 Go 应用?
    在Linux上打包Go应用程序是一个比较基础的技能。如果你是一名Go开发者,那么打包应用程序是必不可少的一环。本文将会介绍如何在Linux上打包Go应用程序。 什么是Go应用程序打包? 打包就是将Go语言编写的程序打包成一个可执行文件或者一...
    99+
    2023-08-20
    开发技术 打包 linux
  • linux怎样使用tar命令打包或备份文件
    本篇内容介绍了“linux怎样使用tar命令打包或备份文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!怎样使用tar命令打包(备份)文件?...
    99+
    2023-06-13
  • 想要将Python shell打包为Windows应用程序?看这里!
    Python是一种强大的编程语言,拥有丰富的库和工具,可以用于开发各种类型的应用程序。在Windows平台上,Python shell是一个常用的工具,但是它只是一个命令行界面,有时候并不太方便。那么,有没有办法将Python shell...
    99+
    2023-10-26
    shell 打包 windows
  • 如何实现在Linux中将应用程序打包为Snap软件包格式
    这篇文章主要讲解了“如何实现在Linux中将应用程序打包为Snap软件包格式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现在Linux中将应用程序打包为Snap软件包格式”吧!在 L...
    99+
    2023-06-12
  • docker怎么打包golang应用
    今天小编给大家分享一下docker怎么打包golang应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、错误的打包方式在...
    99+
    2023-07-05
  • 阿里云服务器linux怎样打开应用界面
    简介 在使用阿里云服务器时,有时候我们需要打开应用程序的界面来进行操作或者查看状态信息。本文将介绍如何在Linux环境下打开应用程序的界面。打开应用程序界面的方法1. 使用命令行方式在Linux环境中,我们可以使用命令行方式来打开应用程序的...
    99+
    2024-01-01
    阿里 界面 服务器
  • 如何在ASP上打包Linux应用程序?
    随着Linux操作系统的普及,越来越多的开发者开始使用Linux来开发应用程序。然而,有些开发者可能还需要在Windows操作系统上使用ASP来发布他们的应用程序。那么如何在ASP上打包Linux应用程序呢?本文将为您介绍具体的步骤和方法...
    99+
    2023-10-13
    linux git 打包
  • 如何在Linux上打包PHP应用程序?
    在Linux上打包PHP应用程序是一个非常常见的任务,因为PHP是一个流行的Web开发语言,而Linux则是一个流行的Web服务器操作系统。在本文中,我们将介绍如何在Linux上打包PHP应用程序,包括使用Composer进行依赖管理和使用...
    99+
    2023-11-06
    linux 打包 bash
  • 怎么将Python脚本打包成exe应用程序
    这篇文章主要介绍“怎么将Python脚本打包成exe应用程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么将Python脚本打包成exe应用程序”文章能帮助大家解决问题。前言我们有时候会编写Py...
    99+
    2023-06-29
  • Python打包为exe详细教程
    目录一、安装 → pyinstaller1.1 方式1:cmd1.2 方式2:Pycharm二、打包 → pyinstaller -F *.py2.1 执行命令2.2 文件目录三、可...
    99+
    2024-04-02
  • Python打包文件框架:如何轻松打包你的应用程序?
    Python作为一门强大的编程语言,广泛应用于各种领域。但是,如果你要将Python应用程序发布到其他人手中,你需要做的不仅仅是将Python文件发送给他们。你需要将Python应用程序打包成一个可执行文件,并确保它能够在其他机器上正常运...
    99+
    2023-06-22
    打包 文件 框架
  • 怎样才能高效地在 Python 打包中使用 numpy 缓存?
    Python 是一门功能强大的编程语言,而 numpy 是一个广泛使用的数值计算库。在 Python 打包过程中,使用 numpy 缓存可以大大提高打包效率。本文将介绍如何高效地使用 numpy 缓存。 numpy 缓存的基本概念 nump...
    99+
    2023-10-26
    打包 numpy 缓存
  • 如何在 Linux 上打包 Python shell?
    在 Linux 上打包 Python shell 是一项非常重要的任务,因为它可以使你的 Python 应用程序在其他平台上运行。本文将介绍如何使用 PyInstaller 和 cx_Freeze 工具来打包 Python shell。 一...
    99+
    2023-10-19
    shell 打包 linux
  • Python打包为exe的示例分析
    这篇文章将为大家详细讲解有关Python打包为exe的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装 → pyinstaller1.1 方式1:cmd1. 调出运行窗口:win&...
    99+
    2023-06-15
  • 怎么用python打包exe应用程序及PyInstaller安装方式
    这篇文章给大家分享的是有关怎么用python打包exe应用程序及PyInstaller安装方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、PyInstaller简介PyInstaller是一个跨平台的Pyt...
    99+
    2023-06-22
  • 想要在Linux上运行异步Python应用程序?打包是关键!
    在Linux上运行异步Python应用程序是一项重要的任务,它可以提高程序的效率和性能。但是,要想确保程序能够在Linux上运行良好,打包是关键。 打包是指将Python应用程序及其依赖项一起打包成一个可执行文件或安装包的过程。在Linux...
    99+
    2023-09-05
    linux 异步编程 打包
  • 使用Git管理Linux应用程序的打包过程
    Git是一款非常流行的分布式版本控制系统,被广泛地应用于软件开发过程中。在Linux应用程序的开发过程中,使用Git能够方便地管理代码,并且能够快速地打包应用程序。本文将介绍如何。 准备工作 在开始之前,需要准备一些工作: 安装Gi...
    99+
    2023-10-13
    linux git 打包
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作