go 无法下载golang.org/x/库问题

Posted by hiho on September 5, 2019

问题

在编写go框架时候,在执行go run main.go后发现报错

go: downloading golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
build command-line-arguments: cannot load golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

1.png

这里大概提示的是尝试到golang.org/x/sys下载sys库,但是超时。

解决

使用go mod replace方法

从 Go 1.11 版本开始,新增支持了 go modules 用于解决包依赖管理问题。该工具提供了 replace,就是为了解决包的别名问题,也能替我们解决 golang.org/x 无法下载的的问题。

go module 被集成到原生的 go mod 命令中,但是如果你的代码库在 $GOPATH 中,module 功能是默认不会开启的,想要开启也非常简单,通过一个环境变量即可开启 export GO111MODULE=on。

golang.org/x/对应github.com/golang/

以我这里为例子golang.org/x/sys对应github.com/golang/sys

go.mod 加上:

replace golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 => github.com/golang/sys v0.0.0-20190813064441-fde4db37ae7a

2.png

—End—

迭代

  • 2019年09月05日 11:22 初稿

参考