Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A setuptools extension for building cpython extensions written in golang.

License

NotificationsYou must be signed in to change notification settings

go-python/setuptools-golang

 
 

Repository files navigation

Build StatusCoverage Status

setuptools-golang

A setuptools extension for building cpython extensions written in golang.

Requirements

This requires golang >= 1.5. It is currently tested against 1.6 and 1.7.

This requires python >= 2.7. It is currently tested against 2.7, 3.5, 3.6,and pypy.

Usage

Addsetuptools-golang to thesetup_requires in your setup.py andbuild_golang={'root': ...}.root refers to the root go import path ofyour project.

An extension must be a single file in themain go package (though the entiremain package will be built into the extension). That package may importother code.You may have multiple extensions in yoursetup.py.

setup(    ...build_golang={'root':'github.com/user/project'},ext_modules=[Extension('example', ['example.go'])],setup_requires=['setuptools-golang'],    ...)

Writing cpython extensions in golang

Here's someexamples

Common issues

undefined reference to `some_c_function'

Extension by default will bring along the go files listed, but won't bringalong the related C files. Add the following toMANIFEST.in:

global-include *.cglobal-include *.go

fatal: could not read Username for 'https://github.com':

You're probably trying to import from an external source which does not exist.Double check that your import is correct.

package github.com/a/b/c: /tmp/.../github.com/a/b exists but /tmp/.../github.com/a/b/.git does not - stale checkout?

You've probably mistyped an import. Double check that your import is correct.

Building manylinux wheels

setuptools-golang also provides a tool for buildingPEP 513 manylinux1 wheels so yourconsumers don't need to have a go compiler installed to use your library.

Simply runsetuptools-golang-build-manylinux-wheels from your sourcedirectory. The resulting wheels will end up in./dist.

$ setuptools-golang-build-manylinux-wheels...+ ls /dist -altotal 8092drwxrwxr-x  2 1000 1000    4096 Feb  1 04:16 .drwxr-xr-x 41 root root    4096 Feb  1 04:15 ..-rw-r--r--  1 1000 1000 2065095 Feb  1 04:16 setuptools_golang_examples-0.1.1-cp27-cp27mu-manylinux1_x86_64.whl-rw-r--r--  1 1000 1000 2063299 Feb  1 04:16 setuptools_golang_examples-0.1.1-cp34-cp34m-manylinux1_x86_64.whl-rw-r--r--  1 1000 1000 2064862 Feb  1 04:16 setuptools_golang_examples-0.1.1-cp35-cp35m-manylinux1_x86_64.whl-rw-r--r--  1 1000 1000 2064873 Feb  1 04:16 setuptools_golang_examples-0.1.1-cp36-cp36m-manylinux1_x86_64.whl-rw-rw-r--  1 1000 1000    4273 Feb  1 04:14 setuptools-golang-examples-0.1.1.tar.gz*******************************************************************************Your wheels have been built into ./dist*******************************************************************************

About

A setuptools extension for building cpython extensions written in golang.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python58.9%
  • C20.0%
  • Go19.5%
  • Makefile1.6%

[8]ページ先頭

©2009-2025 Movatter.jp