分手后
我的世界都清净了

笔者这是第二次遇到这个问题,这里记录下这个的解决。

网上有的朋友和我的这个是不一样的,这里提供的也只是我个人的一个解决。

事故回放

1
2
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"

笔者在某个工程中倒入这两个包,首先说明,导入是没有任何问题的,而且这个里面的方法啥的也是可以使用的,但是在运行的时候就出现了:

1
cannot find package "." in: xxxxxxx

解决

首先和大家一样,也是网上一顿找。有的说是 GOPATH 的问题,我的环境配置里面是没有配置这个 PATH=$GOPATH/bin 的,为了确定是不是这个问题,按照网上的教程试了下,很开心,不是这个问题,但是为了保守起见,这个配置我也没有删除。

现在不是这个 GOPATH 的问题了,那会不会是我的 Goland 出了问题?我重启后,发现这个问题依然存在,换个 IDE 试试,于是我转向了 VSCode , 发现 VSCode 也是给我报了一个 Cannot find Package 的错误。这说明是我程序的本身问题。

那么现在问题来了,我程序这边,代码这里都是可以用,也能进到方法里面去,那问题在哪呢?

抱着试一试的态度,看了眼这个 go.mod ,发现有个问题,就是 只要我在外面引用了什么包,这里应该是有记录的,但是在 go.mod 的里面,我没找到我导入的包。这会不会是问题所在呢?再一次试一下,我在 go.mod 加入包的依赖:

1
2
3
github.com/prometheus/client_golang v1.4.1
github.com/prometheus/common v0.10.0
github.com/prometheus/prometheus v2.5.0+incompatible // indirect

随后执行 go mod vendor , 没有问题后在运行,OK,完美解决。