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 里面

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

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

1年前 评论
Mericustar 1年前
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
)

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

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

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

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

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!