当前位置: 首页 > news >正文

香橙派3B学习笔记8:snap安装管理软件包_打包俩个有调用的python文件

现在尝试一下打包多个有互相调用的 py程序:

ssh  : orangepi@本地ip
密码 : orangepi

操作系统发行版: 基于 Ubuntu 20.04.6 LTS(Focal Fossa)的定制版本,专门为 Orange Pi 设备优化。PRETTY_NAME="Orange Pi 1.0.6 Focal"

目录

 程序准备:

复制与修改文件读写权限:

创建snap调用目录:

创建 Snapcraft 定义文件:

构建snap包:

测试安装:

问题指示:


 程序准备:

在上文的基础上,打包俩个python程序 :

现在我有俩个py程序,一个是Main.py,一个是App.py

Main.py

#!/usr/bin/env python3
# main.py
# 导入 module_program 中的函数
from App import greet, add, multiplydef main():# 调用greetgreet("David")# 调用 addsum_result = add(5, 3)print(f"5 + 3 = {sum_result}")# 调用 multiplyproduct_result = multiply(5, 3)print(f"5 * 3 = {product_result}")if __name__ == "__main__":main()

App.py

#!/usr/bin/env python3
# App.pydef greet(name):print(f"Hello, {name}!")def add(a, b):return a + bdef multiply(a, b):return a * b

执行Main.py会有这个输出:

复制与修改文件读写权限:

现在我将俩个文件复制到/home/orangepi/snap_packet_test/pack_test_2/

然后修改它们的权限与格式:

先进入它们的目录:

cd /home/orangepi/snap_packet_test/pack_test_2/

如果需要utf-8格式转换:

dos2unix App.py
dos2unix Main.py

修改读写权限:

chmod +rwx App.py
chmod +rwx Main.py

1

创建snap调用目录:

创建meta文件夹

mkdir -p meta

创建 Snapcraft 定义文件:

Snapcraft.yaml

name: test2-app
version: '0.5'
summary: Test app
description: A simple test application.
base: core22
grade: stable
confinement: strictparts:test-app:plugin: pythonsource: .python-packages:apps:test2-app:command: Main.pyplugs:- network

完后将 snapcraft.yaml复制进snap调用目录meta里面:

cp snapcraft.yaml meta/snap.yaml

构建snap包:

snapcraft pack .

测试安装:

然后复制生成的snap文件

到别的目录/home/orangepi/snap_packet_test/test_1/

去运行测试:

cp test2-app_0.5_all.snap /home/orangepi/snap_packet_test/test_1/

进入目录 cd /home/orangepi/snap_packet_test/test_1/

解包:

sudo snap install --dangerous test2-app_0.5_all.snap

运行测试:

test2-app

问题指示:

本次操作遇到过一个问题:

原因是我的py文件没有明确指定解释器,填上这句就行了:

#!/usr/bin/env python3

http://www.xdnf.cn/news/933409.html

相关文章:

  • 机器人/智能车纯视觉巡线经典策略—滑动窗口+直方图法
  • Unity3D 开发中的创新技术:解锁 3D 开发的新境界
  • SQL 注入开放与修复
  • NLP学习路线图(三十三): 文本分类
  • LiveCycle Designer 创建提交表单
  • FlexRay总线
  • web架构4------(nginx常用变量,nginx中英文自动匹配,lnmp网站架构,正向代理,反向代理,负载均衡)
  • GPU虚拟化
  • 【 SpringCloud | 微服务 MQ基础 】
  • 【AS32系列MCU调试教程】深度解析:使用 Eclipse 调试AS32系列MCU芯片的工程搭建
  • 永磁同步电机无速度算法--自适应龙贝格观测器
  • 技术栈Etcd的介绍和使用
  • RMQ 算法详解(区间最值问题)
  • 自然语言处理——文本分类
  • Unity使用代码分析Roslyn Analyzers
  • 湖北理元理律师事务所视角:企业债务优化的三维平衡之道
  • Python训练打卡Day43
  • 十二.理解Const关键字
  • JS Day04
  • Polarctf2025夏季赛 web java ez_check
  • 进程优先级
  • ffmpeg(五):裁剪与合并命令
  • 二叉树“倒着看”:层次遍历的反向打开方式
  • 分库分表的取舍
  • 禅道18.2集成LDAP
  • mac:大模型系列测试
  • 原型对象(Prototype)详解
  • BeckHoff_FB --> SET_SNB 功能块
  • Pyppeteer企业级爬虫实战:从动态渲染到反反爬突破(2025终极指南)
  • Day 21