记录解决报错$GOPATH/go.mod exists but should not
记录过程
系统信息 win10
ide golang IntelliJ IDEA
安装的go版本 go1.20.5 windows/amd64
我尝试学习 安装 管理依赖管理工具 wire https://github.com/google/wire
我查看了 当前 go env GOPATH 查看当前gopath设置
PS D:\coder\go-coder\go-training-camp> go env GOPATH
D:\coder\go-coder\testgoproject;C:\Users\Administrator\go
D:\coder\go-coder\testgoproject 是之前使用的项目GOAPTH,目录已经不存在了,我想把GOPATH路径换成测试项目目录 D:\coder\go-coder\go-training-camp
直接通过golang ide 设置页面换的
golang ide 文件-》设置-》GOPATH 选项
更改成功后
执行 go mod go env go list 命令 都出问题了
PS D:\coder\go-coder\go-training-camp> go mod tidy
$GOPATH/go.mod exists but should not
PS D:\coder\go-coder\go-training-camp> go env GOPATH
$GOPATH/go.mod exists but should not
PS D:\coder\go-coder\go-training-camp> go list -m all
$GOPATH/go.mod exists but should not
着急蒙了,修改一下GOPATH 还把环境给搞坏了不成,不行重装一个go或重装一个golang ide ,不行还是得解决问题不能逃避问题,锻炼咱们解决问题的能力
$GOPATH/go.mod exists but should not 翻一下
GOPATH 下面的go mod 文件存在,但是不应该存在,翻译的有点懵,网上找找答案
尝试方案1 ide 删除 项目 GOPATH 项目目录删除go mod 文件
注意要重启下 golang ide 重启后设置的才会生效,go env go mod 命令可以正常使用了
PS D:\coder\go-coder\go-training-camp> go mod init go-training-camp
go: creating new go.mod: module go-training-camp
go: to add module requirements and sums:
go mod tidy
PS D:\coder\go-coder\go-training-camp> go mod tidy
go: finding module for package github.com/gin-gonic/gin
PS D:\coder\go-coder\go-training-camp> go env GOPATH
C:\Users\Administrator\go
PS D:\coder\go-coder\go-training-camp> go list -m all
go-training-camp
filippo.io/edwards25519 v1.1.0
github.com/DATA-DOG/go-sqlmock v1.5.0
github.com/antonlindstrom/pgstore v0.0.0-20220421113606-e3a6e3fed12a
方案1的确解决了问题,为什么我go 设置设置的GOPATH 设置成项目路径会出现 这个问题呢,我该如何设置项目GOPATH 呢
找到了这一篇 文章
https://blog.csdn.net/weixin_43958105/article/details/114801895
文章内容 问题剖析:
如果你设置了环境变量
G
O
P
A
T
H
,
G
o
将默认在
GOPATH,Go 将默认在
GOPATH,Go将默认在GOPATH/pkg/中下载和导入依赖库,而go.mod文件则是将当前工作目录作为项目根目录,从./pkg/中下载和导入依赖库。因此,当$GOPATH指向go.mod所在目录时,就会产生矛盾。
所以解决思路也是显而易见的:你在执行go mod init命令后将$GOPATH也指向了项目目录,所以你应该首先选择通过命令行unset GOPATH。
首先咱们使用 的不是老旧的go版本,只要设置 项目GOPATH 不是设置成 项目目录 或项目子目录 就不会冲突
当前的项目目录是 D:\coder\go-coder\go-training-camp
我把项目GOPATH 设置 成 他的上级目录 D:\coder\go-coder
设置完成后请重启ide
#查看GOPATH
PS D:\coder\go-coder\go-training-camp> go env GOPATH
D:\coder\go-coder;C:\Users\Administrator\go
可以执行go命令
PS D:\coder\go-coder\go-training-camp> go mod init go-training-camp
go: creating new go.mod: module go-training-camp
go: to add module requirements and sums:
go mod tidy
PS D:\coder\go-coder\go-training-camp> go mod tidy
go: finding module for package github.com/gin-gonic/gin
PS D:\coder\go-coder\go-training-camp> go env GOPATH
D:\coder\go-coder;C:\Users\Administrator\go
PS D:\coder\go-coder\go-training-camp> go list -m all
go-training-camp
filippo.io/edwards25519 v1.1.0
github.com/DATA-DOG/go-sqlmock v1.5.0
安装 wire
PS D:\coder\go-coder\go-training-camp> go install github.com/google/wire/cmd/wire@latest
go: downloading github.com/google/wire v0.6.0
go: downloading github.com/google/subcommands v1.2.0
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading golang.org/x/tools v0.17.0
go: downloading golang.org/x/mod v0.14.0
wire 安装到
D:\coder\go-coder\bin
D:\coder\go-coder\pkg
存储的 mode 和sumdb 文件 也应该就是 GOPATH 目录 不能设置成 项目目录,go mod 文件冲突的原因吧,后面细节还需要再去探究下
golang ide 中得全局 GOPATH 项目GOPATH 以及 Module GOPATH 说明
全局 GOPATH:设置适用于特定安装的 IntelliJ IDEA 的所有项目。
Project GOPATH:设置仅适用于当前项目。
Module GOPATH:设置仅适用于一个模块。模块可以具有与为项目配置的 SDK 不同的 SDK。它们还可以携带特定的技术或框架
如果您指定了所有三个范围,IntelliJ IDEA 将首先选择最窄的范围。
原文连接 https://intellijidea.com.cn/help/idea/configuring-goroot-and-gopath.html
$GOPATH/go.mod exists but should not 是在 golang ide 终端报错的,当时windows cmd 是可以 执行命令,但是当时会go mod tidy 会执行异常
执行 go mod tidy 命令
go: found github.com/kr/text in github.com/kr/text v0.2.0
go-training-camp/pkg/mod/github.com/pmezard/go-difflib@v1.0.0/difflib: import path “go-training-camp/pkg/mod/github.com/pmezard/go-difflib@v1.0.0/difflib” should not have @version
需要更改正常 GOPATH 配置后,将项目目录中得pkg 目录删除 掉就可以执行 命令了
引用连接
【解决方案:unset GOPATH】$GOPATH/go.mod exists but should not
https://blog.csdn.net/weixin_43958105/article/details/114801895
golang ide 不同范围设置GOPATH
https://intellijidea.com.cn/help/idea/configuring-goroot-and-gopath.html