当前位置: 首页 > 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

相关文章:

  • cpp自学 day2(—>运算符)
  • unipp---HarmonyOS 应用开发实战
  • PHP环境极速搭建
  • 开源大模型网关:One API实现主流AI模型API的统一管理与分发
  • 工作记录 2018-08-21
  • leetcode189-轮转数组
  • 开源项目实战学习之YOLO11:12.6 ultralytics-models-tiny_encoder.py
  • 学习python做表格6月8日补录
  • 手写 vue 源码 === runtime-core 实现
  • Mysql 基础
  • 第二十七章 位置参数
  • Pinocchio 库详解及其在足式机器人上的应用
  • FPGA静态功耗
  • 【FPGA开发】DDS信号发生器设计
  • 【动态规划】子序列问题(二)
  • Python安装使用教程
  • 国家奖学金答辩PPT+文稿
  • 第三章 内存
  • AUTOSAR实战教程--DoIP_01_配置项解释
  • 在VSCode中使用Ultralytics扩展
  • 江门网站制作培训/2023推广平台
  • 厦门网站制作网页/百度竞价排名魏则西事件分析
  • 手机网站推广怎么做/seo需要会什么
  • 做外贸有哪些网站/网站百度不收录
  • 做h网站/网站的优化与推广分析
  • 外贸网站建设上海/seo文章优化方法