我正在尝试编写一个具有以下结构的程序:
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代码》中还有更多内容,以及这里描述项目布局和设置工作区的第一步的其他答案。