goland 的有些三方包没有自动导入问题

1. 运行环境#

GO111MODULE="on"
GOARCH="amd64"
GOBIN="/Users/zerduo/go/bin"
GOCACHE="/Users/zerduo/Library/Caches/go-build"
GOENV="/Users/zerduo/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/zerduo/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/zerduo/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/usr/local/Cellar/go/1.18.4/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.18.4/libexec/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.18.4"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/zerduo/go/goapi/go.mod"
GOWORK=""

2. 问题描述?#

有个点比较疑惑,为啥有的三方包可以自动导入,有的就没法自动导入,原因是什么,能否有大佬帮忙解答下

3. 您期望得到的结果?#

goland 的有些三方包没有自动导入问题

goland 的有些三方包没有自动导入问题

4. 您实际得到的结果?#

在网上找了一些答案,说是在启用 go module 后,需要把项目放在 go path 以外,试验了一下,并没有解决问题,希望大佬说下具体原因

讨论数量: 17
Mericustar

go mod init [project_name]

go mod tidy


看看是不是缺这些步骤

goland 没用过,不知道集成工具里面有没有

如果是 vscode,是需要这些步骤然后,需要第三方包的时候 go get 包名,就可以在项目中使用了

你可以简单理解为,每一个 go mod 就包含了原来的 GOPATH 的功能,但是实际的资源文件(源代码)还是在 GOPATH 里面

2年前 评论
FatTiger (楼主) 2年前

file 正常这些步骤我已经执行过了,并且刚才我在 GOPATH 下的 pkg 下也能找到,go get 下载的三方包,就是在 ide 里,使用包的时候没有自动导入 :joy:

2年前 评论
Mericustar 2年前
Mericustar

你看看你自己的项目的 go.mod 文件里面有没有这个引入的包名和对应的版本号,比如
file

module xxx

go 1.xx

require (
github.com/gin-gonic/gin v1.6.3
github.com/go-redis/redis/v8 v8.11.4
)

2年前 评论
FatTiger (楼主) 2年前
Mericustar (作者) 2年前
FatTiger (楼主) 2年前
FatTiger (楼主) 2年前
Mericustar (作者) 2年前
Mericustar (作者) 2年前

删除 go.mod 里面的 github.com/mgutz/ansi 那一行,然后在你的项目目录下执行 go get -u github.com/mgutz/ansi

2年前 评论
FatTiger (楼主) 2年前
yxuefeng (作者) 2年前
FatTiger (楼主) 2年前
yxuefeng (作者) 2年前
  • go mod init 项目名
  • go mod tidy 查漏补缺

如果 go.mod 文件中已经存在导入的包那么就删除掉,然后 go get -u 包地址重新下载包 goland 确实有时候会抽风,如果上述还是不行,那么教你一个杀手锏百试百灵: 重启 —> 新建项目 —> 重复上述步骤~ :joy:

2年前 评论