I've already tried PyInstaller, and it worked only for the native Python installation. If I'm using Python virtual environments, or conda, PyInstaller fails.
Will look at the other methods you mentioned, thank you.
In the meantime I learned how to build Python from sources. This way I can end up with a Python contained in a single folder, and can run it from that folder. Additional modules can be installed with pip locally, in the built Python. Thus, I can end up with everything in a single folder, zip that folder and unzip it later to another machine, and it should run without any installation. If launched by a local script that defines PYTHONPATH environment variable, it should run in that folder only, without going to other eventual Python installations that might coexist on the same machine.
Not sure if this method is the proper way to do it.