-2

老实说,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 的路径以供将来使用。任何有关此的帮助,无论是指向教程或网站的链接,都将不胜感激,谢谢。

4

1 回答 1

1

如果您是 go 新手,我建议您使用 go.mod 和平面项目结构。使用实际代码进行测试。任何后缀的_test.go都不会包括在内。

go.mod
foo.go
foo_test.go
bar.go
bar_test.go

如果这是一个库,请随意放置包名称。

main如果这是一个设置为根包名的可执行应用程序。

于 2021-06-12T20:54:14.683 回答