【问题标题】:Using Gnome Builder with Python将 Gnome Builder 与 Python 一起使用
【发布时间】:2020-02-08 16:20:09
【问题描述】:

我正在尝试在 Python 中使用 Gnome Builder 创建一个项目。 文档非常有限,但我认为发现:

当您在 Builder 中按下“构建”按钮时,它会尝试构建一个 flatpak 并运行它。 这适用于初始项目存根。 当我添加一个

import numpy

项目无法运行,因为还没有 numpy。 我认为这必须添加到 .JSON 文件中。我还认为介子文件仅用于“收集”flatpak-builder 的 .py 源。 我遵循了http://docs.flatpak.org/en/latest/python.html 上的文档 并使用 flatpak-pip-generator 为 numpy 创建了一个模块。

我的 .JSON 文件现在看起来像这样:

{
    "app-id": "de.gymlan.Plottler",
    "runtime": "org.gnome.Platform",
    "runtime-version": "3.32",
    "sdk": "org.gnome.Sdk",
    "command": "plottler",
    "finish-args": [
        "--share=network",
        "--share=ipc",
        "--socket=fallback-x11",
        "--socket=wayland",
        "--filesystem=xdg-run/dconf",
        "--filesystem=~/.config/dconf:ro",
        "--talk-name=ca.desrt.dconf",
        "--env=DCONF_USER_CONFIG_DIR=.config/dconf"
    ],
    "cleanup": [
        "/include",
        "/lib/pkgconfig",
        "/man",
        "/share/doc",
        "/share/gtk-doc",
        "/share/man",
        "/share/pkgconfig",
        "*.la",
        "*.a"
    ],
    "modules": [
        {
            "name": "plottler",
            "builddir": true,
            "buildsystem": "meson",
            "sources": [
                {
                    "type": "git",
                    "url": "file:///home/ulrich/Projekte/Plottler"
                }
            ]
        },
        {
      "name": "python3-numpy",
          "buildsystem": "simple",
          "build-commands": [
            "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} numpy"
          ],
          "sources": [
            {
            "type": "file",
            "url": "https://files.pythonhosted.org/packages/ac/36/325b27ef698684c38b1fe2e546e2e7ef9cecd7037bcdb35c87efec4356af/numpy-1.17.2.zip",
            "sha256": "73615d3edc84dd7c4aeb212fa3748fb83217e00d201875a47327f55363cef2df"
             }
          ]
        }
    ]
}

但是构建失败,来自 git 的错误,我不明白:

flatpak-builder --arch=x86_64 --ccache --force-clean --state-dir /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/flatpak-builder --download-only --disable-updates --stop-at=python3-numpy /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/projects/Plottler/flatpak/staging/x86_64-master /home/ulrich/Projekte/Plottler/de.gymlan.Plottler.json
Emptying app dir '/home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/projects/Plottler/flatpak/staging/x86_64-master'
Downloading sources
Fetching full git repo file:///home/ulrich/Projekte/Plottler
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Failed to download sources: module plottler: Der Kindprozess wurde mit Status 128 beendet
flatpak-builder --arch=x86_64 --ccache --force-clean --disable-updates --disable-download --state-dir /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/flatpak-builder --stop-at=python3-numpy /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/projects/Plottler/flatpak/staging/x86_64-master /home/ulrich/Projekte/Plottler/de.gymlan.Plottler.json
Starting build of de.gymlan.Plottler
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

(flatpak-builder:73): flatpak-builder-WARNING **: 16:45:17.109: Failed to get current git checksum: Der Kindprozess wurde mit Status 128 beendet
Cache miss, checking out last cache hit

(flatpak-builder:73): flatpak-builder-WARNING **: 16:45:17.109: rofiles-fuse not available, doing without
========================================================================
Building module plottler in /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/flatpak-builder/build/plottler-11
========================================================================
error: pathspec 'master' did not flatpak-builder --arch=x86_64 --ccache --force-clean --state-dir /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/flatpak-builder --download-only --disable-updates --stop-at=python3-numpy /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/projects/Plottler/flatpak/staging/x86_64-master /home/ulrich/Projekte/Plottler/de.gymlan.Plottler.json
Emptying app dir '/home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/projects/Plottler/flatpak/staging/x86_64-master'
Downloading sources
Fetching full git repo file:///home/ulrich/Projekte/Plottler
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Failed to download sources: module plottler: Der Kindprozess wurde mit Status 128 beendet
flatpak-builder --arch=x86_64 --ccache --force-clean --disable-updates --disable-download --state-dir /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/flatpak-builder --stop-at=python3-numpy /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/projects/Plottler/flatpak/staging/x86_64-master /home/ulrich/Projekte/Plottler/de.gymlan.Plottler.json
Starting build of de.gymlan.Plottler
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

(flatpak-builder:73): flatpak-builder-WARNING **: 16:45:17.109: Failed to get current git checksum: Der Kindprozess wurde mit Status 128 beendet
Cache miss, checking out last cache hit

(flatpak-builder:73): flatpak-builder-WARNING **: 16:45:17.109: rofiles-fuse not available, doing without
========================================================================
Building module plottler in /home/ulrich/.var/app/org.gnome.Builder/cache/gnome-builder/flatpak-builder/build/plottler-11
========================================================================
error: pathspec 'master' did not match any file(s) known to git
Error: module plottler: Der Kindprozess wurde mit Status 1 beendet
match any file(s) known to git
Error: module plottler: Der Kindprozess wurde mit Status 1 beendet

(最后几行是德语“子进程失败”)

【问题讨论】:

    标签: python numpy flatpak gnome-builder


    【解决方案1】:

    我发现了自己:

    包的部分不得添加到主 JSON 文件中,而应添加到单独的文件中。 flatpak-pip-generator.py 为模块创建资源文件,这些文件必须从主 JSON 文档中添加。我的现在看起来像这样:

    {
        "app-id": "de.gymlan.Plottler",
        "runtime": "org.gnome.Platform",
        "runtime-version": "3.32",
        "sdk": "org.gnome.Sdk",
        "command": "plottler",
        "finish-args": [
            "--share=network",
            "--share=ipc",
            "--socket=fallback-x11",
            "--socket=wayland",
            "--filesystem=xdg-run/dconf",
            "--filesystem=~/.config/dconf:ro",
            "--talk-name=ca.desrt.dconf",
            "--env=DCONF_USER_CONFIG_DIR=.config/dconf"
        ],
        "cleanup": [
            "/include",
            "/lib/pkgconfig",
            "/man",
            "/share/doc",
            "/share/gtk-doc",
            "/share/man",
            "/share/pkgconfig",
            "*.la",
            "*.a"
        ],
        "modules": [
            "python3-numpy.json",
            "python3-matplotlib.json",
            "python3-pandas.json",
            {
                "name": "plottler",
                "builddir": true,
                "buildsystem": "meson",
                "sources": [
                    {
                        "type": "git",
                        "url": "file:///home/ulrich/Projekte/Plottler"
                    }
                ]
            }
    
        ]
    }
    

    “python3-*.json”文件位于同一目录。 所以我所要做的就是打电话给

    $ ./flatpak-pip-generator.py numpy
    $ ./flatpak-pip-generator.py matplotlib
    $ ./flatpak-pip-generator.py pandas
    

    在项目目录中,并将生成的文件添加到项目 JSON 文件中。

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2020-09-16
      • 2019-06-26
      • 2019-02-05
      • 2014-03-20
      相关资源
      最近更新 更多