cannot find package "userdo" in any of:...

报错:
cannot find package “userdo” in any of:
D:\application\go\src\userdo (from $GOROOT)
E:\gowork\src\userdo (from $GOPATH)
即:1.无法在安装目录下找到包 2.工作目录下找到包。

解决:

  1. 更改安装目录的包为用户自定义的包自然是不符合的要求的
  2. 如果userdo就在当前的E:\gowork\src下 , 关闭goland,重新打开即可解决

3.如果不是,注意:当前go项目的位置
cannot find package "userdo" in any of:...

可见,当前的工作目录与报错中的工作目录不一致,怎么修改呢?

解决:修改go的工作空间的环境变量,即进行对gopath进行编辑,换成新的工作区间即可:
cannot find package "userdo" in any of:...

然后,重启goland即可。

思考:这是一种解决办法,但是会很麻烦,在有很多的项目,却不在gowor的子目录时,在其孙子目录或者更下层时,每次创建新的项目都需要更改go工作区间的环境变量。所以,为了方便,我们在新建新的代码或者目录应该尽量保存同一工作目录之下,这样保证了工作区间的环境变量的统一性,但是,会使当前的项目过于冗余,而且为了保存源代码,移动的删除并不是很好的方法。

相比于其他软件开发工具,如idea、MyEclipse/eclipe, 会感觉非常怪异:只能统一工作目录,一修改软件中的工作目录(新建新的项目),就需要修改环境变量,给开发带来了一定的麻烦。

为此,建议在工作区间(项目下)使用go module可能效果会更好。

2019.11.13

尝试过了再来补充:
经过试验,go module依然解决不了问题,还是在E:/gowork下老实开发吧。注意保存代码