flatpak-pip-generator balks on requirements-parser
flatpak-builder version
1.4.2
Linux distribution and version
Ubuntu 24.04
Affected flatpak-builder tool
pip/flatpak-pip-generator
flatpak-builder tool cli args
--repo=repo --force-clean --user build.d com.candelatech.py3-10
Source repository URL
private
Flatpak-builder manifest URL
private
Description
When running a generator from a makefile target, flatpak-pip-generator cannot finish find the requirements-parser that it project virtual environment has installed:
$ make
( \
source ./builder-env/bin/activate && \
pip3 install requirements-parser pipdeptree \
)
Requirement already satisfied: requirements-parser in ./builder-env/lib/python3.12/site-packages (0.9.0)
Requirement already satisfied: pipdeptree in ./builder-env/lib/python3.12/site-packages (2.21.0)
Requirement already satisfied: types-setuptools>=69.1.0 in ./builder-env/lib/python3.12/site-packages (from requirements-parser) (70.0.0.20240523)
Requirement already satisfied: packaging>=23.1 in ./builder-env/lib/python3.12/site-packages (from pipdeptree) (24.0)
Requirement already satisfied: pip>=23.1.2 in ./builder-env/lib/python3.12/site-packages (from pipdeptree) (24.0)
( \
cd /home/jreynolds/git; \
if [ ! -d flatpak-builder-tools ]; then \
git clone https://github.com/flatpak/flatpak-builder-tools/; \
fi \
)
( \
source ./builder-env/bin/activate && \
./builder-env/bin/python3 /home/jreynolds/git/flatpak-builder-tools/pip/flatpak-pip-generator \
--requirements-file requirements.txt \
--build-only -o requirements \
)
Requirements modules is not installed. Run "pip install requirements-parser"
make: *** [Makefile:34: requirements] Error 1
This is the same error I get when executing the command from bash, not in make.
Python version 3.12.3
SHELL=/bin/bash
PYV=py3-10
PAKNAME=com.candelatech.$(PYV)
PAKFILE=$(PAKNAME).flatpak
PAKJSON=$(PAKNAME).json
BUILDDIR=build.d
BUNDLEFILE=candela-$(PYV).flatpak
PAK_TOOLS=${HOME}/git/flatpak-builder-tools/pip
PAK_PIP=$(PAK_TOOLS)/flatpak-pip-generator
all: bundle
builder-env:
if [ ! -d builder-env ]; then mkdir builder-env; fi
if [ ! -r builder-env/bin/activate ]; then python3 -m venv builder-env; fi
flatpak-tools: builder-env
( \
source ./builder-env/bin/activate && \
pip3 install requirements-parser pipdeptree \
)
( \
cd ${HOME}/git; \
if [ ! -d flatpak-builder-tools ]; then \
git clone https://github.com/flatpak/flatpak-builder-tools/; \
fi \
)
# this builds a requirements.json file
requirements:
( \
source ./builder-env/bin/activate && \
./builder-env/bin/python3 $(PAK_PIP) \
--requirements-file requirements.txt \
--build-only -o requirements \
)
bundle: $(PAKFILE)
flatpak build-bundle -v ./repo $(BUNDLEFILE) $(PAKNAME)
$(BUILDDIR):
mkdir $(BUILDDIR)
$(PAKFILE): | flatpak-tools $(BUILDDIR) $(PAKJSON) requirements
cp ~/lfs/py-scripts/update_dependencies.py .
flatpak-builder --repo=repo --force-clean --user $(BUILDDIR) $(PAKJSON)
run: $(PAKFILE)
flatpak-builder --run $(BUILDDIR) $(PAKJSON) ctpy.bash
clean:
rm -rf $(BUILDDIR) .flatpak-builder $(BUNDLEFILE)
distclean: clean
rm -rf repo/* repo/.lock builder-env
This makefile does work with Fedora 36, python 3.10.11
Got this Requirements modules is not installed. Run "pip install requirements-parser" too. In Python interpreter got:
>>> import requirements
...
ModuleNotFoundError: No module named 'pkg_resources'
>>>
Running
pip3 install setuptools
fixed error.
This is not an issue with the script but rather how it venv etc. is being set up.