解决unknown import path "golang.org/x/sys/unix": unrecognized import path "golang.org/x

Posted 无垠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决unknown import path "golang.org/x/sys/unix": unrecognized import path "golang.org/x相关的知识,希望对你有一定的参考价值。

问题描述

当我们使用 go getgo installgo mod 等命令时,会自动下载相应的包或依赖包。但由于众所周知的原因,类似于 golang.org/x/... 的包会出现下载失败的情况。如下所示:

$ go get -u golang.org/x/sys
go get golang.org/x/sys: 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.GOPROXY 环境变量

终极大杀器 —— GOPROXY!!!

我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。

其实还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法KEXUESHANGWANG的开发良民来说是最大的福音。

更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载被墙的源码包了:

# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io

不过,需要依赖于 go module 功能。可通过 export GO111MODULE=on 开启 MODULE。

如果项目不在 GOPATH 中,则无法使用 go get ...,但可以使用 go mod ... 相关命令。

也可以通过置空这个环境变量来关闭,export GOPROXY=

以上是关于解决unknown import path "golang.org/x/sys/unix": unrecognized import path "golang.org/x的主要内容,如果未能解决你的问题,请参考以下文章

2019 CCPC - 网络选拔赛 D path(求第k短路)

2019CCPC网络预选赛 1004 path 最短路

解决unknown import path "golang.org/x/sys/unix": unrecognized import path "golang.org/x

os.path.join 与 import 语句[重复]

gulp-sass 解决 load_path 支持?

2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛