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 @   CodeWater  阅读(1566)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
历史上的今天:
2022-04-09 数据结构:优先队列
点击右上角即可分享
微信分享提示