老实说,Golang 的包和模块系统是我处理过的最令人恼火和不必要的复杂的事情。我不知道是否只是我不理解,缺乏关于这个主题的信息,或者只是一般的 golang。
我创建了一个 Go 项目,我还不想发布或上传到 GitHub。它不在我设置的 GOPATH 内,因为根据我对引入模块的理解,您可以在 GOPATH 之外对项目进行编码。项目布局是这样的
──── MyProject
├─── project
│ ├─── pkg1
│ │ └─── foo.go
│ ├─── pkg2
│ │ └─── bar.go
│ └─── go.mod
└─── test
└─── test.go
我test.go
希望我能做类似的事情,import "project/pkg1"
但我不明白如何让它工作。即使我test.go
在项目内部移动并输入,import "/pkg1"
我也会收到Cannot import absolute path
错误。
我真的不想一直在里面编写我所有的 go 项目%GOPATH%/src
,这样做似乎很荒谬。
同样,这可能只是我不理解。我来自 pythonic 背景,我可以创建一个setup.py
文件,在运行后将我的项目安装到 python 的路径以供将来使用。任何有关此的帮助,无论是指向教程或网站的链接,都将不胜感激,谢谢。