我在 Debian 机器上编写了一个 Python 包,并尝试将其移植到 Ubuntu Core(它预装在我想要使用的硬件上)。在 Debian 上,我能够简单地从 git 中提取我的代码并执行python3 -m mypackage "somearg"
。在 Core 上,我想尝试将其实现为 snap,因为这种方法似乎更受欢迎。
我想出了如何安装经典 snap 以获取snapcraft
构建工具。我创建了一个 snap 并链接了我的 git 存储库。然后我在本地安装了我的 snap,但它没有创建任何二进制文件。
我推测这是因为我没有创建任何指令来执行此操作。我需要在某处提供一个命令,该命令说明要处理所有这些源代码的事情是使用某个 python 命令运行它。
我如何告诉 snapcraft 将我的 python 包转换为运行该包的二进制文件(并传递参数)?
答案1
在以下位置声明应用程序
snapcraft.yaml
... apps: ... your-app: command: app-launcher ...
然后
app-launcher
就可以是简单的 shell 脚本#!/bin/sh python3 -m mypackage $@ #if some arguments have space in some arguments use command below #python3 -m mypackage $1 $2 $3 $4 $5 ...
用户调用命令:
your-app:app-launcher "somearg"
参考: