go导包失败:$GOPATH/go.mod exists but should not

2023-7-14:其实就是没有开启ide的mod设置,但是go的环境配置里面又开启了模块,所以才导致一直有错。
2023-7-31: 新发现一种错误错误就是,在gopath下面创建了go module项目。这两个冲突的!!!!要么单独在在gopath下建,要么在gopath之外的目录下新建一个module项目。下面的原因可能写的有点绕了。

目录结构如下:

在entry中main函数使用node的treenode结构体,一直失败,
导包语句:

import (
	"fmt"
	"learngo/object/tree"
)

解决

  1. 在项目下使用go mod init 项目名(项目中别的路径如果已经有go.mod文件,删除),生成的module居然是项目名。。。???然后import的时候开始地址也是这里的module名!!!(PS:对于go来说,模块其实就相当于一个项目了)

  2. go mod tidy看有没有报错(一直报错:$GOPATH/go.mod exists but should not 。 但是能够运行程序)

注意点

  1. 另外goland几个设置影响的:
  2. 这里开了之后才会有项目库依赖!!!
  3. node文件包名如果改成tree1(跟文件夹名字不一样的话),那么在entry文件导包的时候就需要变成tree1 "learngo/object/tree",加一个tree1别名才能生效。。。。
  4. 项目路径PROJECT PATH这里子路径不能放到父路径上面,不然执行程序的时候还是会报$GOPATH/go.mod exists but should not.的错误。
    PS:另外注意,如果是用goland新建的一个项目。这里必须要导入项目目录,不然导包的时候会一直失败报错!!!
  5. 如果项目名下面有src目录,导包的时候不需要写!
posted @ 2023-04-09 03:54  CodeWater  阅读(1783)  评论(0)    收藏  举报