0

我正在尝试在 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

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

4

1 回答 1

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 文件中。

于 2019-10-19T10:32:26.883 回答