go version报“command not found”说明path未生效,常见于msi安装后未重启终端或zip版未配置系统path;新开终端验证即可。

Windows 上装 Golang,用 .msi 安装包 + 配好 GOPROXY 就能跑起来,不用手动配 GOROOT、GOPATH(新版自动处理),但必须关掉旧终端重开命令行。
go version 报 command not found 怎么办
这不是 Go 没装,是系统根本找不到 go 命令。常见原因只有两个:
- 刚装完 .msi 包,没关掉所有 CMD/PowerShell 窗口 ——
go的 PATH 是安装时写进系统变量的,旧终端不会自动刷新 - 用了 .zip 解压版但没把
go\bin手动加进系统 PATH(不是用户 PATH)
验证方式很简单:新开一个终端,直接输 go version。别输 golang version 或 go --version,后者在部分老版本会失败。
go mod init 提示 cannot determine module path
这是新建项目时最常卡住的地方,本质是模块名不合法或路径有坑:
在 Go 中使用 google/wire 实现编译时依赖注入——wire.NewSet、wire.Build、wire.Bind(接口→实现)、wire.Struct、wire.Value、wire.Interface
- 当前目录名含中文、空格、特殊符号(如
我的项目、go test)—— 全部改成英文下划线或短横线 - 执行
go mod init时没跟参数,比如go mod init hello或go mod init example.com/demo;用go mod init .容易推导失败 - 目录里已有其他语言文件(比如
package.json或README.md)不影响,但不能有非.go的 Go 源文件(如main.go.bak)
模块名只是依赖管理标识,本地练习用 go mod init hello 完全没问题,不需要真实域名。
go run main.go 报错 package main is not a main package
表面看是语法问题,实际多由编码或结构导致:
-
main.go开头必须是package main,不能是package hello或漏写 - 必须有且仅有一个
func main(),不能带参数、不能有返回值 - 如果目录下有多个
.go文件,全部都得是package main;混入package utils会导致构建失败 - Windows 下用记事本保存可能带 BOM 头 —— 改用 VS Code 或 Notepad++,存为 UTF-8 无 BOM 格式
真正容易被忽略的是:Go 不认文件后缀以外的“主程序”概念,它只看 package main + func main() 这一对组合,缺一不可,且不能跨文件分散。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










