Go自定义程序包导入错误



我正在尝试编写一个具有以下结构的程序:

Go/src/
  -github.com
     -myname
        -hello
           main.go
           -vector
              vector.go

当我使用以下命令在main.go文件内的代码中导入包时:

import(
  "vector"
)

我收到错误消息:

Can't find package "vector" in any of:
    C:Gosrcvendorvector (vendor tree)
    C:Gosrcvertex (from $GOROOT)
    C:Gosrcgithub.commynamesrcvertex (from $GOPATH)

为什么在最后一行添加src?难道它不应该用hello文件夹代替src吗?因为那是我运行文件的地方?此外,如果我从github.com/myname/hello/vertex这样的完整文件结构导入它,它就会运行,这对我来说似乎很奇怪

我正在使用go run hello.go执行,以简化与程序的交互。

您的Go代码(与Go的stdlib相反)应该在$GOPATH/src下(编辑:而不是$GOROOT,正如我最初所说!),并且在您的情况下,始终使用完整的导入路径是标准的,从github.com/开始(即使您找到了避免这种情况的方法)。

Go团队的《如何编写Go代码》中还有更多内容,以及这里描述项目布局和设置工作区的第一步的其他答案。

相关内容

最新更新