Golang中Go Get尝试从本地工作区拉取而非HTTPS源的问题
Golang中Go Get尝试从本地工作区拉取而非HTTPS源的问题
$ go get github.com/{user}/{repository}
`can't load package: package github.com/{user}/{repository}: no Go files in C:\Users\{me}\Documents\GoWorkspace\src\github.com\{user}\{repository}
上面的输出看起来像是在我的GOPATH中搜索获取,而不是去github上获取。
如果这是一个非常基础的错误,我表示歉意,我正在按照教程学习,还没有发现其他人遇到过这个问题。
更多关于Golang中Go Get尝试从本地工作区拉取而非HTTPS源的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
我猜该用户的Git仓库不可用。
更多关于Golang中Go Get尝试从本地工作区拉取而非HTTPS源的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这是正确的,但除非你使用 -u 来更新它们,否则它不会获取已经存在的内容。
在我看来,您是在说’go get’不是从GitHub获取代码库的正确命令,因为它不会查找https协议。这样理解对吗?如果确实如此,是否有其他命令可以实现这个功能?
除非您正在使用模块,否则会首先搜索您的 GOPATH。
并且其中存在的任何内容都将被使用。您可以使用 go get -u ... 来更新 GOPATH 中现有的包。
func main() {
fmt.Println("hello world")
}
这个问题通常是由于Go模块模式未启用或GOPATH工作区配置导致的。当Go工具链在GOPATH模式下运行时,它会优先在本地工作区查找包,而不是从远程仓库拉取。
以下是解决方案:
- 启用Go模块支持(推荐):
# 在项目目录中初始化模块
go mod init your-project-name
# 然后执行go get
go get github.com/{user}/{repository}
- 如果必须使用GOPATH模式,确保仓库已正确克隆到GOPATH中:
# 手动克隆仓库到GOPATH
mkdir -p $GOPATH/src/github.com/{user}
cd $GOPATH/src/github.com/{user}
git clone https://github.com/{user}/{repository}.git
# 然后进入包目录执行go get
cd $GOPATH/src/github.com/{user}/{repository}
go get
- 检查Go环境配置:
# 查看当前模块模式
go env GO111MODULE
# 如果显示auto或off,可以强制启用模块模式
export GO111MODULE=on
go get github.com/{user}/{repository}
- 清理并重新获取:
# 清理模块缓存
go clean -modcache
# 重新获取依赖
go get -u github.com/{user}/{repository}
在Go 1.16及以上版本中,模块模式是默认启用的。如果遇到这个问题,建议检查当前目录是否在GOPATH内,或者通过go env GOPATH确认GOPATH设置。

