7yan00
7yan00

Reputation: 849

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?

Upvotes: 82

Views: 130612

Answers (7)

STEEL
STEEL

Reputation: 10057

you can try to download packages from mod

go get -v all

Upvotes: 2

BurtK
BurtK

Reputation: 1036

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.

Upvotes: 32

David Hunsicker
David Hunsicker

Reputation: 1240

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.

Upvotes: 1

user3072851
user3072851

Reputation: 41

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

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

Upvotes: 3

VonC
VonC

Reputation: 1324576

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/...

Upvotes: 54

Donn Lee
Donn Lee

Reputation: 3149

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

Upvotes: 6

Joao Costa
Joao Costa

Reputation: 2823

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/

Upvotes: 13

Related Questions