去获取不下载到 SRC 文件夹

Col*_*nny 12 go

预期:我使用 go get 安装包,它会在 src 文件夹中创建所有必需的文件夹,但它们只出现在 pkg/mod 文件夹中,我无法使用它们。

现实:它说它正在下载,完成,然后什么都没有。

一切都在 Windows 环境变量中正确设置,这只是 .. 不起作用。

使用的命令: go get github.com/fatih/color

去环境:

set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\admin\AppData\Local\go-build
set GOENV=C:\Users\admin\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\admin\Desktop\gostuff\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\admin\Desktop\gostuff
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\admin\AppData\Local\Temp\go-build639062626=/tmp/go-build -gno-record-gcc-switches  ```


Run Code Online (Sandbox Code Playgroud)

sam*_*ife 27

将 GO111MODULE 环境变量设置为“关闭”为我解决了这个问题。我正在使用 zsh。这是我放在 .zshrc 文件中的命令,

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

我的工作环境,

macOS 大苏尔

转到版本:1.16

  • 到底是什么意思? (3认同)

Coc*_*nut 19

从 Go 1.15 开始,go get默认情况下会在$GOPATH/pkg/mod/( GOMODCACHE) 中下载源代码,这取代了原来的位置$GOPATH/src/。(参考: https: //go.dev/doc/go1.15#go-command

关闭 Go 模块(例如GO111MODULE=off下载源代码)是一个坏主意。

如果您只需要下载源代码,我强烈建议您使用git clone

$ git clone https://github.com/fatih/color
Run Code Online (Sandbox Code Playgroud)

如果您需要将其放入$GOPATH/src/,只需运行:

$ git clone https://github.com/fatih/color $GOPATH/src/github.com/fatih/color
Run Code Online (Sandbox Code Playgroud)

请注意,从 Go 1.14 开始,Go 项目不再局限于支持$GOPATH/src/Go 模块。您现在并不真正需要该文件夹。$GOPATH/src/在引入 Go 模块之前,该文件夹用于依赖管理。

现在建议用户迁移到 Go 模块,如https://github.com/golang/go/wiki/Modules指出:“自 Go 1.14 以来,模块支持被认为已准备好用于生产使用,并且鼓励所有用户迁移到模块来自其他依赖管理系统”。


dls*_*per 8

Go 模块将在 $GOPATH/mod 中保存依赖项。

因此,当您将它们导入到您的项目中时,您需要担心两件事:它们被导入到 .go 文件中,并且它们存在于 go.mod 文件中。

下载某个版本后,它们将可用于所有未来的项目。

如果您想了解更多关于它们以及它们是如何组织的,您可以阅读此处提供的 Go Modules Wiki https://github.com/golang/go/wiki/Modules

  • 从(至少)1.15 开始,缓存的位置已按照 https://github.com/golang/go/wiki/Modules#go-115 移动到 GOPATH[0]/pkg/mod (2认同)

小智 5

你可以试试这个命令。

export GO111MODULE=off
go get github.com/fatih/color
Run Code Online (Sandbox Code Playgroud)

  • 请尝试添加用户应该尝试该命令的原因,技术细节将会有所帮助 (11认同)