golang unrecognized import path "/x/net" 完美解决方案

时间:2025-02-26 08:42:45

报错复现

dev$ go get -v /x/net
Fetching /x/net?go-get=1
https fetch failed: Get /x/net?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
package /x/net: unrecognized import path “/x/net” (https fetch: Get /x/net?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

简述

如果只有少数的几个包依赖,可以使用 /golang/net 之类的库来代替。但是在go module模式下,会出现同样的包的多个版本同时使用的情况。如果引入的框架使用了多个基础包,使用替代方式或者go mod replace的方式来解决简直是一场灾难。

解决方案

本质上go获取包的时候有两个步骤,下面针对这两个步骤分别处理。
2019.09.02更新
只需要配置GOPROXY变量即可,不需要http层面配置代理。

http层面增加代理

添加如下环境变量,来解决https fetch failed问题

$ export http_proxy