Hi,
I'm playing around with generating extension moudle to Python in Go. This is
for a blog post - not production ready.
The Go code is compiled to a shared library and the Python module is using
ctypes to call the Go code in the shared library. I know it's know a classic
extension module with PyModule_Create and friends, but that's for later...
maybe.
The setup.py is defined as
---
from subprocess import call
from setuptools import Extension, setup
from setuptools.command.build_ext import build_ext
class build_go_ext(build_ext):
def build_extension(self, ext):
ext_path = self.get_ext_filename(ext.name)
cmd = ['go', 'build', '-buildmode=c-shared', '-o', ext_path]
cmd += ext.sources
out = call(cmd)
if out != 0:
raise RuntimeError('Go build failed')
setup(
name='checksig',
version='0.1.0',
py_modules=['checksig'],
ext_modules=[
Extension('_checksig', ['checksig.go', 'export.go'])
],
cmdclass={'build_ext': build_go_ext},
)
---
When I run "python setup.py bdist_wheel", I see that that
_checksig.cpython-38-x86_64-linux-gnu.so is being built. But when I look at the
content of dist/checksig-0.1.0-cp38-cp38-linux_x86_64.whl it's not there.
What am I missing?
You can view the whole (WIP) project at
https://github.com/ardanlabs/python-go/tree/master/pyext
Thanks,
Miki
--
https://mail.python.org/mailman/listinfo/python-list