这两天在学习GO语言,使用GoLand的过程中遇到了个问题,

can not find package "main" in any of:
    E:\Go\src\main (from $GOROOT)
    E:\code\Go\src\main (from $GOPATH)

 工作山还有些其他的事情,所以多花了些时间,差不多三天才对这个事情有点眉目。

解决方案提供一下,哈哈。

1、在已有环境变量GOPATH无误的情况下,仍要进入GoLand中的Settings中对GOPATH进行配置,否则无法运行代码(不知道为啥,不是已经在环境变量中配置过了么额)

goland的go moudules的setting goland._goland

(1)此处需要注意标红的三点,1为 settings 配置的路径;

(2)2为必须要配置的一项,我尝试取消掉(因为上面已经有了环境变量的GOPATH了呀,但好像没用,去掉下面那个USE GOPATH又不行),但是会无法运行代码。所以2也是必须要加上的,否则原先的那个GOPATH无效;

(3)3也得勾上,按道理来说2和3选一个就可以了,但是经过我的测试,两个都必须得有才能正确运行代码。

(4)经过后续测试,确实是2和3只需要勾选一个选项就可以正确运行代码了,之前我没重启terminal所以都不对,纠正一下…

(4)如图所示,当配置项变为如下配置后,方可以正确运行代码:

goland的go moudules的setting goland._编辑器_02

可选择系统变量中的GOPATH或者不勾选使用环境变量这个选项,手动进入Global GOPATH配置该路径也是可以的。

 

2、单独为每一个项目配置GOPATH。(注意此时就必须得非常非常注意引用的包的路径问题哈,贼容易在这里出问题!)

goland的go moudules的setting goland._环境变量_03

单独在红框框选项下对该项目进行GOPATH配置,只对该项目有效哦。

但是这样做有个不太好的地方,需要在每一个项目项目都给一个src目录,如图所示:

goland的go moudules的setting goland._Go_04

familyAccount目录下得自己手动见一个src目录,否则也会报错!

经过再三尝试,不用建src,哈哈,是我傻了,又没重启terminal,只要确保调用的包路径没问题的话运行也是可以通过,刚才就是引用包报错了所以我以为必须得有,哈哈!

 

 

小白刚开始学习,如有错误之处,请指正,灰常感谢!!!

 

再来补充,今天准备引入redigo学习go操作redis的时候使用了下go get命令,发现redigo被放到在了这个项目自己的src(IDE自动新建的额)下的go path中,明显不是我想要的效果,起码至少应该放在系统环境变量的gopath中的。这是问题来源!

之后我就把该项目下的整个src文件夹删了(局部项目go path哈)。

然后,当我重新返回查看这篇文章时,发现解决方案1中的红色2已经无效了。经我再三尝试,将Global GOPATH作如下配置可以继续正常访问项目。

goland的go moudules的setting goland._环境变量_05

居然多了层src,不太明白啥子意思,有点糊涂了……先这样用着,以后要是有思路在回来接着写...