Go运行报错package is not in GOROOT 如何将代码放在D盘运行?
报错原因
你当前环境已经开启GO111MODULE=on,属于Go模块模式,不再使用旧版GOPATH路径查找自定义包。你没有为项目初始化Go模块,导致Go默认从GOROOT路径查找自定义的greetings包,匹配不到就抛出该错误。
Go代码完全可以存放在D盘运行,具体操作步骤如下:
D盘运行Go代码的操作步骤
1. 创建D盘工作目录
在D盘新建任意目录作为Go代码工作区,示例路径:
- 自定义包路径:
D:\go_code\greetings - 主项目路径:
D:\go_code\project_name
2. 为自定义包初始化模块
打开终端进入D:\go_code\greetings目录,执行命令:
go mod init greetings
执行完成后目录内会生成go.mod文件,写完greetings包的业务代码即可。
3. 为主项目初始化模块并关联本地包
终端进入D:\go_code\project_name目录,执行初始化命令:
go mod init project_name
生成主项目的go.mod文件后,手动编辑该文件,新增本地包替换规则:
replace greetings => ../greetings
保存后执行依赖同步命令:
go get greetings
4. 验证运行
在主项目目录执行go run main.go即可正常运行,不会再报找不到包的错误。
如果需要修改GOPATH默认路径到D盘,可右键此电脑→属性→高级系统设置→环境变量,把用户变量里的GOPATH修改为D:\go,修改后重启终端生效,该操作不是模块模式下的必须操作,仅适配旧版GOPATH开发模式使用。
内容的提问来源于stack exchange,提问作者agriz
相关产品推荐
相关产品推荐

