在Windows 10上用VSCode配置Golang开发环境

在Windows 10上用VSCode配置Golang开发环境 我在 Windows 上使用 VSCode IDE 进行 Go 开发 (v1.17.6)。我遇到了一个奇怪的问题。我的导入没有按预期工作。

我的包中有一个 import "rsc.io/quote"。当我运行 go run main.go 时,它提示:

no required module provides package rsc.io/quote; to add it:
        go get rsc.io/quote

我已经执行了 go init modgo mod tidy,但都没有效果(除了创建了包含模块和 Go 版本的 mod 文件)。

我可以运行 go get rsc.io/quote,它会下载包并更新 mod 文件。然后我就可以无错误地运行 go run main.go 了。

我的问题是,为什么它不能自动下载导入的包?我是否遗漏了某个环境设置或变量,或者没有正确设置某些东西(比如 GOPATH 或 GOROOT)?我确实在环境变量中设置了 GO111MODULE=on


更多关于在Windows 10上用VSCode配置Golang开发环境的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于在Windows 10上用VSCode配置Golang开发环境的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在 Go 1.16+ 版本中,go get 命令的行为发生了变化,不再自动下载依赖包。这是 Go 模块系统的设计变更。以下是解决方案:

1. 使用 go mod tidy 自动下载依赖

go mod tidy

这个命令会自动下载 go.mod 文件中缺失的依赖,并移除未使用的依赖。

2. 明确使用 go get 下载特定包

go get rsc.io/quote

3. 完整的工作流程示例

// main.go
package main

import (
    "fmt"
    "rsc.io/quote"
)

func main() {
    fmt.Println(quote.Go())
}
# 初始化模块
go mod init example.com/myapp

# 下载所有依赖
go mod tidy

# 运行程序
go run main.go

4. 检查 go.mod 文件 确保 go.mod 文件包含正确的依赖:

module example.com/myapp

go 1.17

require rsc.io/quote v1.5.2

5. 环境变量设置 你设置的 GO111MODULE=on 是正确的。在 Windows 10 上还需要确保:

  • Go 已正确安装并添加到 PATH
  • VSCode 中安装了 Go 扩展
  • 终端使用正确的 Go 版本

6. VSCode 特定设置 在 VSCode 的 settings.json 中添加:

{
    "go.toolsManagement.autoUpdate": true,
    "go.useLanguageServer": true
}

7. 清理缓存 如果问题仍然存在,尝试清理 Go 模块缓存:

go clean -modcache

这个行为是 Go 1.16 的预期变化,go rungo build 不再自动下载新依赖,需要显式使用 go getgo mod tidy 来管理依赖。

回到顶部