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

Reply via email to