Skip to main content

Install

gopy is a single static Go binary. There is no C extension ABI, no dynamic library, and no Python runtime to install alongside it. Pick the path that matches your environment.

With go install

Requires Go 1.26 or newer.

go install github.com/tamnd/gopy/cmd/gopy@latest

The binary lands in $GOPATH/bin/gopy (or $HOME/go/bin/gopy under the default Go layout). Add that directory to your $PATH.

Confirm the install:

$ gopy --version
gopy 0.12.0 (3.14.0+) [go1.26 darwin/arm64]

Prebuilt binary

Releases ship as a tar archive per platform on the releases page. Each archive contains a single executable.

curl -L -o gopy.tar.gz \
https://github.com/tamnd/gopy/releases/latest/download/gopy-$(uname -s)-$(uname -m).tar.gz
tar xzf gopy.tar.gz
sudo install -m 0755 gopy /usr/local/bin/gopy

From source

Clone the repository and build with the bundled Makefile.

git clone https://github.com/tamnd/gopy
cd gopy
make build
./bin/gopy --version

Common developer targets:

TargetWhat it does
make buildBuild the gopy binary into ./bin/gopy
make testRun the unit tests with the race detector
make coverProduce coverage.txt and print total coverage
make vetRun go vet
make lintRun golangci-lint
make tidyRun go mod tidy

What gets installed

Just one binary. There are no companion files, no site-packages directory, no shebang trampolines. gopy reads .py source from disk, compiles it in process, and runs it on its own VM. The standard library that gopy serves comes from the Go packages under module/, not from the Python files that CPython ships in Lib/.

The pyc-format implementation under marshal/ is wire-compatible with CPython: a .pyc produced by gopy loads in CPython 3.14 and vice versa. That property is exercised by the parity test suite.