简体   繁体   中英

How do I install requirements in Go? "cannot find package"

I'm new to Go and I'm trying to set up a Go project with minimal documentation: https://github.com/alphagov/metadata-api

I've cloned it, but when I try go build I get the following warnings:

main.go:8:2: cannot find package "github.com/Sirupsen/logrus" in any of:
    /usr/local/Cellar/go/1.3.3/libexec/src/pkg/github.com/Sirupsen/logrus (from $GOROOT)
    /Users/me/go/src/github.com/Sirupsen/logrus (from $GOPATH)
main.go:14:2: cannot find package "github.com/alphagov/metadata-api/content_api" in any of:
    /usr/local/Cellar/go/1.3.3/libexec/src/pkg/github.com/alphagov/metadata-api/content_api (from $GOROOT)
    /Users/me/go/src/github.com/alphagov/metadata-api/content_api (from $GOPATH)

I'm guessing this is because I haven't installed the Go equivalent of requirements?

My GOPATH is set:

metadata-api$ echo $GOPATH
/Users/me/go

And the Go executable is in

metadata-ape$ echo $PATH
....:/Users/me/go/bin

What do I need to do to help Go find these packages?

You should install package first:

try

$ go get github.com/Sirupsen/logrus

and check you $GOPATH dir

This project use gom as the package manager,

Make sure you have installed gom

or try this command

$ gom install 

I think your $GOPATH and $PATH settings are incorrect, the $GOPATH environment variable specifies the location of your workspace, these are my path settings:

export GOROOT=$HOME/bin/go
export GOBIN=$GOROOT/bin
export GOPATH=$HOME/golang
export PATH=$PATH:$GOBIN

I had similar issue and

export GO111MODULE=on 

helped.

Was able to fix the similar issue in Go 1.13.7 by typing:

 export GOPATH=~/go
 go get github.com/profile/repository 
 (e.g. github.com/Sirupsen/logrus)

When you need your code to do something that might have been implemented by someone else (in Github or somewhere else package), You should initialize go mod file inside of your folder.)

For the purposes of this understand, just use example.com/module.

go mod init example.com/module

Add new module requirements and sums.

go mod tidy

Run your program

go run .

For more details: https://golang.org/doc/tutorial/getting-started

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM