Существует библиотека под названием «py7zr», но я просто не могу заставить работать зависимости.
Я был бы очень признателен, если бы у кого-то была идея, как это сделать аккуратно, я уверен, что это делалось сотни, если не тысячи раз раньше... Я не могу быть единственный, кто пытается извлечь архивы 7z в плоский пакет.
Вот как я сейчас пытаюсь это сделать (с помощью библиотеки py7zr):
(это минимально воспроизводимый пример — мне удалось использовать 5 других библиотек того же формата, только py7zr вызывает проблемы)
Создайте папку в корне:
Код: Выделить всё
com.test.yaml
Код: Выделить всё
id: com.test.test
runtime: org.gnome.Platform
runtime-version: '49'
sdk: org.gnome.Sdk
command: py7zr-test
modules:
- python3-py7zr.json
- flatpak-pip-generator.py
(последнюю версию можно скачать с https://github.com/flatpak/flatpak-buil ... -generator)
И это
Чтобы воспроизвести проблему:
- запустите python3 Flatpak-pip-generator.py py7zr, чтобы сгенерировать зависимости.
- запустите Flatpak-builder --user --install --force-clean --repo=repo build-dir com.test.yaml, чтобы попытаться собрать Flatpak
Код: Выделить всё
INFO: pip is looking at multiple versions of py7zr to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement backports.zstd>=1.0.0; python_version < "3.14" (from py7zr) (from versions: none)
ERROR: No matching distribution found for backports.zstd>=1.0.0; python_version < "3.14"
Error: module python3-py7zr: Child process exited with code 1
Несмотря на это, мне пришлось вручную включать backports.zstd, чтобы попытаться устранить проблему: (вы должны добавить это в раздел модулей перед python3-py7zr.json один)
Код: Выделить всё
- name: python3-backports-zstd
buildsystem: simple
build-commands:
- pip3 install --prefix=/app --no-build-isolation --no-deps .
sources:
- type: archive
url: https://files.pythonhosted.org/packages/f4/b1/36a5182ce1d8ef9ef32bff69037bd28b389bbdb66338f8069e61da7028cb/backports_zstd-1.3.0.tar.gz
sha256: e8b2d68e2812f5c9970cabc5e21da8b409b5ed04e79b4585dbffa33e9b45ebe2
Код: Выделить всё
WARNING: Requested pyppmd>=1.3.1 from file:///run/build/python3-py7zr/pyppmd-1.3.1.tar.gz (from py7zr), but installing version 0.0.0
Discarding file:///run/build/python3-py7zr/pyppmd-1.3.1.tar.gz: Requested pyppmd>=1.3.1 from file:///run/build/python3-py7zr/pyppmd-1.3.1.tar.gz (from py7zr) has inconsistent version: expected '1.3.1', but metadata has '0.0.0'
INFO: pip is looking at multiple versions of py7zr to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement pyppmd>=1.3.1 (from py7zr) (from versions: 1.3.1)
ERROR: No matching distribution found for pyppmd>=1.3.1
Error: module python3-py7zr: Child process exited with code 1
Я был бы очень признателен за любую помощь, советы или, возможно, другие методы для получения конечного результата.
Спасибо.>