macosgoenvironment-variables

Cannot set $GOPATH on Mac OSX


I'm trying to set my $GOPATH variable to run some example code on my machine:

$ smitego-example go run main.go 
main.go:5:2: cannot find package "github.com/#GITHUB_USERNAME#/smitego" in any of:
    /usr/local/go/src/pkg/github.com/#GITHUB_USERNAME#/smitego (from $GOROOT)
    ($GOPATH not set)

$ smitego-example export $GOPATH=$HOME
-bash: export: `=/Users/#OSX_USERNAME#': not a valid identifier

enter image description here

Contents of github.com/#GITHUB_USERNAME#/smitego/smitego.go:

package smitego

How can I set my GOPATH so it works always and forever?


Solution

  • Update, as of Go 1.8: If you're installing Go 1.8 (released: Feb 2017) or later, GOPATH is automatically determined by the Go toolchain for you.

    It defaults to $HOME/go on macOS (nee OS X) - e.g. /Users/matt/go/. This makes getting started with Go even easier, and you can go get <package> right after installing Go.


    For the shell: (the manual method)

    ~/.bash_profile should contain export GOPATH=$HOME/go and also export PATH=$GOPATH/bin:$PATH. The use of the $ is important: make sure to note where I've used it (and where I have not).

    For Sublime Text:

    Sublime Text menu > Preferences > Package Settings > GoSublime > Settings: User

    {
            "shell": ["/bin/bash"],
            "env": {"GOPATH": "/Users/#USERNAME#/go/"},
    }
    

    Make sure your GOPATH is not set to the full path of the package; just the root of your go folder where src, pkg, and bin reside. If you're not using GoSublime, I'd suggest installing that first.