目录
问题描述
解决方式
手动下载
设置代理
go mod replace
GOPROXY 环境变量
首页 后端开发 Golang 快速解决go get golang.org/x 包不成功的问题

快速解决go get golang.org/x 包不成功的问题

Dec 02, 2021 pm 02:42 PM
get golang google

本文由go语言教程栏目给大家介绍如何一键解决 go get golang.org/x 包失败问题,希望对需要的朋友有所帮助!

一键解决 go get 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)
登录后复制

解决方式

那我们该如何解决问题呢?毕竟还要制造 bug 的嘛~

手动下载

我们常见的 golang.org/x/... 包,一般在 GitHub 上都有官方的镜像仓库对应。比如 golang.org/x/text 对应 github.com/golang/text。所以,我们可以手动下载或 clone 对应的 GitHub 仓库到指定的目录下。

mkdir $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone git@github.com:golang/text.git
rm -rf text/.git
登录后复制

当如果需要指定版本的时候,该方法就无解了,因为 GitHub 上的镜像仓库多数都没有 tag。并且,手动嘛,程序员怎么能干呢,尤其是依赖的依赖,太多了。

设置代理

如果你有代理,那么可以设置对应的环境变量:

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port
登录后复制

或者,直接用 all_proxy

export all_proxy=http://proxyAddress:port
登录后复制

go mod replace

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

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

以下为参考示例:

module example.com/hello

require (
    golang.org/x/text v0.3.0
)

replace (
    golang.org/x/text => github.com/golang/text v0.3.0
)
登录后复制

类似的还有 glide、gopm 等这类第三方包管理工具,都不同方式的解决方案提供给我们。

GOPROXY 环境变量

终于到了本文的终极大杀器 —— GOPROXY

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

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

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

export GOPROXY=https://goproxy.io
登录后复制

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

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

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

对于 Windows 用户,可以在 PowerShell 中设置:

$env:GOPROXY = "https://goproxy.io"
登录后复制

最后,我们当然推荐使用 GOPROXY 这个环境变量的解决方式,前提是 Go version >= 1.11

最后的最后,七牛也出了个国内代理 goproxy.cn 方便国内用户更快的访问不能访问的包,真是良心。

以上是快速解决go get golang.org/x 包不成功的问题的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

谷歌 Pixel 9 Pro XL 接受桌面模式测试 谷歌 Pixel 9 Pro XL 接受桌面模式测试 Aug 29, 2024 pm 01:09 PM

谷歌在 Pixel 8 系列中引入了 DisplayPort 替代模式,并且在新推出的 Pixel 9 系列中也采用了该模式。虽然它主要是为了让您通过连接的屏幕镜像智能手机显示,但您也可以将其用于桌面

Pixel 9 Pro XL 的 Google Tensor G4 在 原神 方面落后于 Tensor G2 Pixel 9 Pro XL 的 Google Tensor G4 在 原神 方面落后于 Tensor G2 Aug 24, 2024 am 06:43 AM

谷歌最近回应了有关 Pixel 9 系列 Tensor G4 性能的担忧。该公司表示,该 SoC 的设计初衷并不是为了超越基准。相反,该团队专注于使其在 Google 想要的领域表现良好。

谷歌向大多数用户开放 AI Test Kitchen & Imagen 3 谷歌向大多数用户开放 AI Test Kitchen & Imagen 3 Sep 12, 2024 pm 12:17 PM

谷歌的 AI Test Kitchen 包括一套供用户使用的 AI 设计工具,现已向全球 100 多个国家的用户开放。此举标志着世界各地的许多人第一次能够使用 Imagen 3、Googl

Pixel 9 Pro XL 与 iPhone 15 Pro Max 相机比较显示谷歌在视频和变焦性能方面取得了令人惊讶的胜利 Pixel 9 Pro XL 与 iPhone 15 Pro Max 相机比较显示谷歌在视频和变焦性能方面取得了令人惊讶的胜利 Aug 24, 2024 pm 12:32 PM

谷歌 Pixel 9 Pro 和 Pro XL 是谷歌对三星 Galaxy S24 Ultra 和苹果 iPhone 15 Pro 和 Pro Max 等产品的回应。 YouTube 上的 Daniel Sin(请观看下文)将 Google Pixel 9 Pro XL 与 iPhone 15 Pro Max 进行了一些比较

谷歌确认 Pixel 9 Pro Fold 因设计奇特而与官方无线充电配件不兼容 谷歌确认 Pixel 9 Pro Fold 因设计奇特而与官方无线充电配件不兼容 Sep 01, 2024 am 06:31 AM

Pixel 9 Pro Fold 类似于谷歌新生的可折叠部门的大转变。事实上,Pixel 9 Pro Fold 和 Pixel Fold 之间的差异如此之大,以至于前者更多地与 OnePlus Open 进行比较(A 上的价格为 1,399.99 美元)

Google Pixel 9 Pro XL 在 DxOMark'全球”智能手机相机排名中排名第二 Google Pixel 9 Pro XL 在 DxOMark'全球”智能手机相机排名中排名第二 Aug 23, 2024 am 06:42 AM

谷歌的新 Pixel 9 系列推出了之前系列中没有的新型号 Pixel 9 Pro XL。它本质上与非 XL 版本(在亚马逊预订)相同,但顾名思义,它具有更大的屏幕。两个电子

第一个 Google Pixel 9a 视频展示了全面重新设计,还有传言称其发布时间更早 第一个 Google Pixel 9a 视频展示了全面重新设计,还有传言称其发布时间更早 Aug 27, 2024 am 06:35 AM

自从谷歌发布首款 Pixel 9 系列智能手机以来,几乎没有什么时间过去了。事实上,它刚刚开始发货 Pixel 9、Pixel 9 Pro 和 Pixel 9 Pro XL(亚马逊售价 1,099 美元)。相比之下,Pixel 9 Pro Fold 的预订则不会

谷歌对 Pixel 9 系列中 Tensor G4 基准测试成绩不佳的回应 谷歌对 Pixel 9 系列中 Tensor G4 基准测试成绩不佳的回应 Aug 20, 2024 pm 09:49 PM

从一开始,Google Pixel 系列就从来没有想过要在性能基准测试中击败表现最好的竞争对手。 Google Pixel 9 系列的情况并没有太大不同,因为早期基准测试结果表明 Tensor G4 相当出色

See all articles