如何在Go中安装需求?"找不到套餐"

Ric*_*ard 52 go

我是Go的新手,我正在尝试使用最少的文档设置Go项目:https://github.com/alphagov/metadata-api

我克隆了它,但是当我尝试时,go build我收到以下警告:

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)
Run Code Online (Sandbox Code Playgroud)

我猜这是因为我没有安装Go等效的要求?

GOPATH的设定:

metadata-api$ echo $GOPATH
/Users/me/go
Run Code Online (Sandbox Code Playgroud)

Go可执行文件在

metadata-ape$ echo $PATH
....:/Users/me/go/bin
Run Code Online (Sandbox Code Playgroud)

我需要做些什么来帮助Go找到这些包?

lid*_*ang 64

你应该先安装包:

尝试

$ go get github.com/Sirupsen/logrus
Run Code Online (Sandbox Code Playgroud)

检查你$GOPATHDIR

该项目gom用作包管理器,

确保已安装 gom

或尝试此命令

$ gom install 
Run Code Online (Sandbox Code Playgroud)

我认为您$GOPATH$PATH设置不正确,$GOPATH环境变量指定工作区的位置,这些是我的路径设置:

export GOROOT=$HOME/bin/go
export GOBIN=$GOROOT/bin
export GOPATH=$HOME/golang
export PATH=$PATH:$GOBIN
Run Code Online (Sandbox Code Playgroud)

  • 我也试过simly`get get`,我认为它同时拥有了所有的依赖关系. (11认同)

rga*_*aut 40

我有类似的问题和

export GO111MODULE=on 
Run Code Online (Sandbox Code Playgroud)

有帮助。

  • 这也是我所需要的。去寻找原因 - 这是一个概要:https://dev.to/maelvls/why-is-go111module-everywhere-and-everything-about-go-modules-24k (3认同)

Dil*_*lip 5

当您需要代码执行其他人可能已经实现的操作(在 Github 或其他地方的包中)时,您应该在文件夹内初始化一个 go mod 文件。)

出于本示例的目的,我将仅使用 example.com/module。

go mod init example.com/module
Run Code Online (Sandbox Code Playgroud)

添加新的模块要求和总和:

go mod tidy
Run Code Online (Sandbox Code Playgroud)

运行你的程序:

go run .
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅https://golang.org/doc/tutorial/getting-started