【发布时间】:2021-01-21 05:26:17
【问题描述】:
这是我的 Go 项目的目录结构:
my_project
|
main.go
- my_package
|
- my_package.go
在 main.go 上可以正常工作:
进口( “我的包裹/我的包裹” )
但是当我创建一个新文件夹“examples”来测试包的一些新功能时, main.go 无法按预期导入包:
my_project
|
main.go
- my_package
|
- my_package.go
- examples
|
- main.go
从父目录导入包:
进口( “../my_package/my_package” )
尝试运行 examples/main.go 不起作用:
cd examples
go run main.go
build _/mypath/my_project/my_package: cannot find module for path _/mypath/my_project/my_package
我不应该从父目录导入本地包吗?
是否总是必须将包模块放在 main.go 的子文件夹中?
是否有任何简单明了的方法来组织 main/test/debug go 程序并在本地包上共享依赖项?
我在golang modules and local packages 上读到过,也许我应该使用绝对路径来导入包,但我不喜欢这个选项,因为这是要加载到存储库的代码,所以绝对路径不起作用其他实现。
【问题讨论】:
-
你看过官方Tutorial: Get started with Go吗?如果你有更多的包,你必须创建一个
go.mod文件(例如go mod init)。 -
如果你只有一个模块,你可以从中导入任何包,而无需接触
go.mod。如果您有多个模块并且想要“留在磁盘上”,请参阅How to use a module that is outside of “GOPATH” in another module? -
谢谢!有用! go.mod 中的“替换”具有魔力
标签: go import directory package