[go] can't load package: package .: no buildable Go source files

Here is the error message:

% go get     
can't load package: package .: no buildable Go source files in /Users/7yan00

% echo $GOPATH     
/Users/7yan00/Golang

How would you troubleshoot that error?

This question is related to go

The answer is


To resolve this for my situation:

I had to specify a more specific sub-package to install.

Wrong:

go get github.com/garyburd/redigo

Correct:

go get github.com/garyburd/redigo/redis

Another possible reason for the message:

can't load package: .... : no buildable Go source files

Is when the source files being compiled have:

// +build ignore

In which case the files are ignored and not buildable as requested.This behaviour is documented at https://golang.org/pkg/go/build/


You should check the $GOPATH directory. If there is an empty directory of the package name, go get doesn't download the package from the repository.

For example, If I want to get the github.com/googollee/go-socket.io package from it's github repository, and there is already an empty directory github.com/googollee/go-socket.io in the $GOPATH, go get doesn't download the package and then complains that there is no buildable Go source file in the directory. Delete any empty directory first of all.


I had this exact error code and after checking my repository discovered that there were no go files but actually just more directories. So it was more of a red herring than an error for me.

I would recommend doing

go env

and making sure that everything is as it should be, check your environment variables in your OS and check to make sure your shell (bash or w/e ) isn't compromising it via something like a .bash_profile or .bashrc file. good luck.


If you want all packages in that repository, use ... to signify that, like:

go get code.google.com/p/go.text/...

you can try to download packages from mod

go get -v all


Make sure you are using that command in the Go project source folder (like /Users/7yan00/Golang/src/myProject).

One alternative (similar to this bug) is to use the -d option (see go get command)

go get -d

The -d flag instructs get to stop after downloading the packages; that is, it instructs get not to install the packages.

See if that helps in your case.


But more generally, as described in this thread:

go get is for package(s), not for repositories.

so if you want a specific package, say, go.text/encoding, then use

go get code.google.com/p/go.text/encoding

if you want all packages in that repository, use ... to signify that:

go get code.google.com/p/go.text/...