it turns out multiple go shared objects in a single process is not supported
it likely broke in go 1.21 and there is no intention to fix it :(
A few examples utilizing setuptools-golang.
- Demonstrates that you can mix go extensions with c extensions seamlessly.
- A very basic hello-world-y demo
- This example is roughly lifted from @FiloSottile's blog post
- This module demonstrates importing go code within the project.
- This module demonstrates importing external code (in this case ansi)
- This module demonstrates it is possible to write an extension using only go files.
- It's slightly cheaty in that one of the go files is entirely a C header.
- You could instead do something similar to this example but it's much more difficult to support multiple versions of python.