Linux环境下安装Golearn包时无法找到$GOPATH/src/github.com/sjwhitworth/golearn目录的问题求助
解决Golearn包目录找不到的问题
我来帮你排查解决这个问题,大概率是Go的模块模式或者GOPATH配置的问题,咱们一步步来:
一、先确认基础信息
- 检查你的Go版本:执行
go version,如果是1.16+,那就是模块模式在起作用,这是当前Go的默认开发模式。 - 检查模块模式状态:执行
go env GO111MODULE,输出on或auto就说明模块模式已开启。 - 确认GOPATH路径:执行
echo $GOPATH,如果输出为空,Go默认会把$HOME/go作为GOPATH,你可以试试直接访问$HOME/go/src/github.com/sjwhitworth/golearn。
二、针对性解决方案
方案1:强制在GOPATH/src下下载包(适合习惯旧GOPATH模式的用户)
模块模式下go get不会把包放到$GOPATH/src,你可以临时关闭模块模式执行命令,这样包就会被下载到指定目录:
GO111MODULE=off go get -t -u -v github.com/sjwhitworth/golearn
执行完后再运行cd $GOPATH/src/github.com/sjwhitworth/golearn,应该就能顺利进入目录了。
如果想永久关闭模块模式(不推荐,现在模块模式是Go的主流开发方式),可以执行:
go env -w GO111MODULE=off
之后再执行原来的go get命令即可。
方案2:适应模块模式(推荐)
模块模式下包确实不在$GOPATH/src,但你可以这样操作:
- 确认包已成功下载:执行
ls $GOPATH/pkg/mod/github.com/sjwhitworth/golearn*,你会看到带版本号后缀的目录(比如golearn@v0.0.0-xxxxxx),这就是下载好的包文件。 - 如果需要修改源码,你可以把这个目录复制到
$GOPATH/src下,或者在自己的项目中通过go mod edit命令引入后修改本地副本。
方案3:排查是否包未下载成功
如果上面的方法都不行,可能是go get命令执行失败了(比如网络问题):
- 重新执行
go get命令,仔细看输出有没有拉取失败的提示。 - 如果是网络问题,设置Go代理后再尝试:
go env -w GOPROXY=https://goproxy.io,direct go get -t -u -v github.com/sjwhitworth/golearn
内容的提问来源于stack exchange,提问作者Onil90
相关产品推荐
相关产品推荐

