Hi Fons,

Christopher Arndt sent a long and detailed answer, here's a shorter one.

Python packages can be installed in user's home or virtual environments.
For example, to install the zita tools in my home environment, I cd to the zita-audiotools-1.3.0 directory, then used:
pip install .

Installation was successful, so I used the same method for zita-jacktools.
It includes the .so modules:
ls $HOME/.local/lib/python3.*/site-packages/zita_*tools/

For completion I uninstalled the packages in my home:
pip uninstall zita-audiotools zita-jacktools
Then I deleted the makefiles and reinstalled the packages (using same method).

I also reinstalled them globally using:
sudo pip install .
It worked too:
ls /usr/local/lib/python3.*/dist-packages/zita_*tools/*

There's newer configuration methods, but for now there's no need to update your packages, apart from removing the makefiles (and update the documentation).

Marc

Le 2022-08-15 à 08 h 30, Fons Adriaensen a écrit :
Hello all,

I have some mixed python/C++ packages, e.g. zita-audiotools
and zita-jacktools.

To install these I expect the following to happen:

1. The C++ parts are compiled and combined into a *.so
   file which is a python extension.
2. The *.so and the python parts, any data etc. get
   installed into the user's /usr/lib/python*.*/site-packages.

To make this as easy as possible I provide a setup.py and a 
Makefile, so that all that should be required is:

make; sudo make install

Originally this used distutils, when that got 'deprecated'
this changed to setuptools. So until recently the Makefile
was something like: 

----
PY = /usr/bin/python3

build:
    $(PY) ./setup.py build

install:
    $(PY) ./setup.py install

clean:
    $(PY) ./setup.py clean
    rm -rf build dist zita_jacktools.egg-info
---

Then I got warnings telling me that calling setup.py directly
is now  also deprecated, and that I should use 'official tools'
to build and install. What exactly that means I was unable to
find out, but the following seems to work:

----
PY = /usr/bin/python3

build:
    $(PY) -m build -w

install:
    pip install --force-reinstall dist/*.whl

clean:
    rm -rf build dist *.egg-info *~
----

But this still produces a warning:

WARNING: Running pip as the 'root' user can result in broken
permissions and conflicting behaviour with the system package
manager. It is recommended to use a virtual environment instead.
Now clearly installing things in site-packages requires root,
so what is then the recommended method ?? And why the virtual
environment (which is used by build anyway) ??

If anyone can shed some light on this mess he/she will deserve
my eternal gratitude.

Ciao,