PyOxidizer does not support emitting a zip archive. It could. But I don't believe anybody has officially asked for this feature. Please consider filing a GitHub issue for it. (It's probably low on my priority list, however).
Your best bet is to follow the PyOxidizer documentation for creating a Rust project and then modifying that project's Cargo.toml to produce a shared or static library instead of an executable, which you can then link into your C++ application. See
https://pyoxidizer.readthedocs.io/en/latest/rust.html (note this links to the latest version of the docs, which have changed substantially since the 0.7 release).
I hope to one day teach PyOxidizer's config files to be able to produce static or shared libraries in addition to executables. It's on the long feature backlog. It is certainly possible, it just isn't very turnkey at the moment.
The `pyoxidizer` Rust crate is usable as a Rust crate. So if you wanted to write a few dozen lines of Rust, you could probably produce a quick and dirty program for emitting a statically linked libpython without involving a custom CLI or Starlark config files.