香橙派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, multiply

def main():
    # 调用greet
    greet("David")

    # 调用 add
    sum_result = add(5, 3)
    print(f"5 + 3 = {sum_result}")

    # 调用 multiply
    product_result = multiply(5, 3)
    print(f"5 * 3 = {product_result}")


if __name__ == "__main__":
    main()

App.py

#!/usr/bin/env python3
# App.py

def greet(name):
    print(f"Hello, {name}!")

def add(a, b):
    return a + b

def 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: strict
 
parts:
  test-app:
    plugin: python
    source: .
    python-packages:
 
apps:
  test2-app:
    command: Main.py
    plugs:
      - 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值