我可以在 Ubuntu Core 上使用 snap 运行 python 包吗?

我可以在 Ubuntu Core 上使用 snap 运行 python 包吗?

我在 Debian 机器上编写了一个 Python 包,并尝试将其移植到 Ubuntu Core(它预装在我想要使用的硬件上)。在 Debian 上,我能够简单地从 git 中提取我的代码并执行python3 -m mypackage "somearg"。在 Core 上,我想尝试将其实现为 snap,因为这种方法似乎更受欢迎。

想出了如何安装经典 snap 以获取snapcraft构建工具。我创建了一个 snap 并链接了我的 git 存储库。然后我在本地安装了我的 snap,但它没有创建任何二进制文件。

我推测这是因为我没有创建任何指令来执行此操作。我需要在某处提供一个命令,该命令说明要处理所有这些源代码的事情是使用某个 python 命令运行它。

我如何告诉 snapcraft 将我的 python 包转换为运行该包的二进制文件(并传递参数)?

答案1

  1. 在以下位置声明应用程序snapcraft.yaml

    ...
    apps:
      ...
      your-app:
        command: app-launcher
    ...
    
  2. 然后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"

参考:

相关内容