香橙派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.pswp.cn/diannao/86313.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86313.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86313.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Boot 中實現 HTTPS 加密通信及常見問題排查指南

Spring Boot 中實現 HTTPS 加密通信及常見問題排查指南 在金融行業安全審計中,未啟用HTTPS的Web應用被列為高危漏洞。通過正確配置HTTPS,可將中間人攻擊風險降低98%——本文將全面解析Spring Boot中HTTPS的實現方案與實戰避坑指南。 一、HTTPS 核心原理與…

前端對WebSocket進行封裝,并建立心跳監測

WebSocket的介紹: WebSocket 是一種在客戶端和服務器之間進行全雙工、雙向通信的協議。它是基于 HTTP 協議,但通過升級(HTTP 升級請求)將連接轉換為 WebSocket 協議,從而提供更高效的實時數據交換。 WebSocket 的特點…

【AI】智駕地圖在不同自動駕駛等級中的作用演變

一、功能價值動態模型:基于自動駕駛等級的權重遷移 功能演變四階段: █ 輔助階段(L2):單功能補足 → █ 拓展階段(L2 NOA):多模態增強 → █ 融合階段(L3)…

Java處理字符數組轉換為開始日期和結束日期

在Java中處理字符數組表示的TransactionTime(例如["2025-06-01","2025-06-10"]),將其轉換為開始時間和結束時間,推薦使用Java 8的java.time API(如LocalDate)。以下是完整代碼示例&…

【筆記】Poetry虛擬環境創建示例

#工作記錄 【筆記】結合 Conda任意創建和配置不同 Python 版本的雙軌隔離的 Poetry 虛擬環境-CSDN博客 在PowerShell中: Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved.Install the latest PowerShell for new features and improv…

20242817李臻-安全文件傳輸系統-項目驗收

安全文件傳輸系統項目報告 項目概述 本實驗旨在設計并實現一個完整的安全文件管理系統,基于SM2SM3SM4混合密碼體系,構建了一個具備高安全性的C/S架構文件傳輸平臺。項目采用C/S架構,使用Qt框架開發,滿足Linux系統調用、Socket網…

2025年- H76-Lc184--55.跳躍游戲(貪心)--Java版

1.題目描述 2.思路 只要是在最大覆蓋范圍覆蓋了,就是覆蓋了。 局部最優:每遍歷一個元素取它最大的覆蓋范圍 全局最優:在這個序列里,可以得到最大的覆蓋范圍。如果覆蓋范圍能達到最后一個元素,就是全局最優 &#xff0…

05.查詢表

查詢表 字段顯示可以使用別名: col1 AS alias1, col2 AS alias2, … WHERE子句:指明過濾條件以實現“選擇"的功能: 過濾條件: 布爾型表達式算術操作符:,-,*,/,%比較操作符:,<>(相等或都為空),<>,!(非標準SQL),>,>,<,<范圍查詢: BETWEEN min_num …

Python學習——數組的行列互換

數組的行列互換 data [ [col for col in range (4)] for row in range (4)] for row in data: print (row) print(“--------------”) for r_index,row in enumerate(data): for c_index in range (r_index,len(row)): tmp data [c_index] [r_index] data[c_index] [r_index…

bugku 應急加固1

Linux的應急加固 一、JS劫持 獲取JS劫持域名 JS劫持&#xff0c;JavaScript Hijacking介紹&#xff1a; 攻擊者通過某種方式篡改網頁中的JavaScript代碼&#xff0c;從而使網頁跳轉到惡意域名。 常見攻擊方式有&#xff1a; 中間人攻擊&#xff0c;在網絡傳輸過程中攔截并修…

ant-design4.xx實現數字輸入框; 某些輸入法數字需要連續輸入兩次才顯示

目錄 一、問題 二、解決方法 三、總結 一、問題 1.代碼里有一個基于ant封裝的公共組件數字輸入框&#xff0c;測試突然說 無效了&#xff0c;輸入其他字符也會顯示&#xff1b;改了只有又發現某些 輸入法 需要連續輸入兩次 才能顯示出來。 二、解決方法 1.就離譜&#xff0…

鄭州工程技術學院赴埃文科技開展訪企拓崗促就業活動

6 月 3 日&#xff0c;鄭州工程技術學院信息工程學院&軟件學院黨總支書記尚德基、校企合作處處長吳博、軟件學院院長葉愷、信息工程學院院長馬耀鋒、副院長黃繼海、河南省人工智能產業創新發展聯盟執行秘書長孟松濤等領導一行到訪鄭州埃文科技有限公司。埃文科技總經理助理…

pandas 字符串存儲技術演進:從 object 到 PyArrow 的十年歷程

文章目錄 1. 引言2. 階段1&#xff1a;原始時代&#xff08;pandas 1.0前&#xff09;3. 階段2&#xff1a;Python-backed StringDtype&#xff08;pandas 1.0 - 1.3&#xff09;4. 階段3&#xff1a;PyArrow初次嘗試&#xff08;pandas 1.3 - 2.1&#xff09;5. 階段4&#xf…

[特殊字符] 在 React Native 項目中封裝 App Icon 一鍵設置命令(支持參數與默認路徑)

?? 前置依賴 使用的是社區維護的 CLI 工具: @bam.tech/react-native-make它擴展了 react-native 命令,支持 set-icon 功能。 安裝: yarn add -D "@bam.tech/react-native-make"?? 封裝目標 我們希望能夠通過以下方式調用: # 默認使用 ./icon.png yarn …

[論文閱讀] 人工智能 | 搜索增強LLMs的用戶偏好與性能分析

【論文解讀】Search Arena&#xff1a;搜索增強LLMs的用戶偏好與性能分析 論文信息 作者: Mihran Miroyan, Tsung-Han Wu, Logan King等 標題: Search Arena: Analyzing Search-Augmented LLMs 來源: arXiv preprint arXiv:2506.05334v1, 2025 一、研究背景&#xff1a;…

[2025CVPR]確定性圖像轉換新突破:雙逼近器布朗橋模型(Dual-approx Bridge)技術詳解

本文深入解析CVPR 2024頂會論文《Deterministic Image-to-Image Translation via Denoising Brownian Bridge Models with Dual Approximators》,揭示確定性圖像轉換的核心突破 一、問題背景:確定性圖像轉換的挑戰 在圖像轉換任務中(如超分辨率、醫學影像處理),?確定性…

Python Pytest

1.Pytest用例發現規則 1.1 模塊名(python文件)名必須以 test_ 開頭或 _test 結尾&#xff0c;如 test_case&#xff0c;case_test&#xff0c;下劃線都不能少 1.2 模塊不能放在 . 開頭的隱藏目錄或者叫 venv的目錄下&#xff0c;virtual environment&#xff0c;叫venv1都可以…

CSRF(跨站請求偽造)詳解

目錄 一、&#x1f4d6;什么是CSRF 二、&#x1f517;漏洞利用過程 三、&#x1f4d1;漏洞的前提條件 四、&#x1f50d;常見漏洞發生位置 五、?CSRF挖掘技巧 (一) 抓正常請求包進行初步判斷 (二) Referer 繞過驗證測試 (三) Token 缺失與二次驗證缺失識別 六、??漏…

深入解析 Qwen3-Embedding 的模型融合技術:球面線性插值(Slerp)的應用

在深度學習領域&#xff0c;模型融合技術是一種強大的工具&#xff0c;用于提升模型的魯棒性和泛化能力。通過結合多個模型的優勢&#xff0c;可以減少單一模型的過擬合風險&#xff0c;并在多種任務中實現更優的性能表現。在 Qwen3-Embedding 的訓練過程中&#xff0c;模型融合…

【在線五子棋對戰】二、websocket 服務器搭建

文章目錄 Ⅰ. WebSocket1、簡介2、特點3、原理解析4、報文格式 Ⅱ. WebSocketpp1、認識2、常用接口3、websocketpp庫搭建服務器搭建流程主體框架填充回調函數細節 4、編寫 makefile 文件5、websocket客戶端 Ⅰ. WebSocket 1、簡介 WebSocket 是從 HTML5 開始支持的一種網頁端…