先了解golang 项目的工程组织规范,
以及远程包/本地包
$GOPATH
├─bin
├─pkg
└─src
└─github.com(远程包)
└─golang.org(远程包)
└─your_pkg_src(本地包)
简要的说一说吧,以go-sqlite3为例,包的源码和项目中通常的引用方式为:
import github.com/mattn/go-sqlite3
那go get github.com/mattn/go-sqlite3下来的源码位置应为:
$GOPATH/src/github.com/mattn/go-sqlite3(这是物理路径)
同理如若网络问题导致需要手动下载包那就应该在src目录下建立同样的子目录将包存放到此处。
例如你的报错信息中有golang.org/x/net/context这个包,
因为golang.org的服务器是谷歌公司的,IP被封,你通过手动等方式下载回来的包因该存放到此处:
$GOPATH/src/golang.org/x/net/context
来自 <https://www.oschina.net/question/86462_2191491?sort=time>