问题
Hi I'm pretty new at Golang, after install it I would like to use the next package in my project: https://github.com/gin-gonic/gin
After I created my project, I did the next command to install gingonic:
go get -u github.com/gin-gonic/gin
But the import is not recognized inside my project, I understand that it's something related with my GOROOT, but I wasn't able to solve the issue.
The next are are my Go env variables:
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/rpantoja/Library/Caches/go-build"
GOENV="/Users/rpantoja/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/rpantoja/go/pkg/mod"
GONOPROXY="github.com/mercadolibre"
GONOSUMDB="github.com/mercadolibre"
GOOS="darwin"
GOPATH="/Users/rpantoja/go"
GOPRIVATE="github.com/mercadolibre"
GOPROXY="http://goregistry.furycloud.io/"
GOROOT="/usr/local/Cellar/go/1.15/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.15/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/gz/zfy97n595rs5w_t0dr9wr29dzzxvs4/T/go-build960054223=/tmp/go-build -gno-record-gcc-switches -fno-common"
And this is how my project it's configured:
After install the package:
回答1:
The steps to do to set up a new Go project with modules:
- Have Go installed. Latest version preferably, best >= v1.13 which Go modules the default. For go1.11 and above you will have to do some extra steps to enable Go modules.
- Create a new folder for your project. Preferably NOT in GOPATH. By default GOPATH is ~/go, so create your own projects folder, e.g.
mkdir ~/projects
and thenmkdir ~/projects/myproject
. - All further commands are run from the new projects root, so best switch there:
cd ~/projects/myproject
- In the newly created folder run
go mod init projectPath
whereprojectPath
should be the URL of your future git repo (e.g.github.com/myname/myproject
). This will create thego.mod
file in the current folder. It will contain the module name you used ingo mod init
and the currently installed go version as a minimum version. (Don't worry about that for now, it won't get in your way.) If you don't plan on ever releasing your project, you can name your project anything. But if that ever conflicts with another package or module name, you are in trouble. - Now you can run
go get github.com/gin-gonic/gin
(don't use-u
, that is dangerous as it update all sub-dependencies instead of using the dependencies the gin developers used). This should addgithub.com/gin-gonic/gin
to yourgo.mod
file as a requirement. If you want to update a dependency, just callgo get depPath
again. It will update the dependency version in yourgo.mod
file to the latest version available. If you want to up-/downgrade to a specific version usego get depPath@vX.Y.Z
. - Create your
main.go
and usegithub.com/gin-gonic/gin
in there. - Use
go mod tidy
to remove all unused imports or add missing ones togo.mod
. (Usually you don't need to editgo.mod
,go mod tidy
will do that for you.) It will also tidy up yourgo.sum
file which holds check sums for all your dependencies. You can have a look at the file, but will (usually) never have to edit it.go mod tidy
will do that for you. - In Goland the most important is to make sure
Go modules integration
is enabled. The other settings should be correct by default. - If you still have problems with the dependencies, you can try a
go clean -modcache
. It will clear your entire local modules cache, so you need to download all of it again. This can sometimes help if the modules cache got messed up somehow. Should not happen normally, though.
Hope this helps. If it doesn't, let me know so I can add the missing parts.
来源:https://stackoverflow.com/questions/65134537/after-go-install-the-import-doesnt-recognize-the-package