Import 正在开发Golang包,无法使用相对路径
我正在尝试开发一个简单的golang包 假设它的名字是“Hello”,目录结构如下所示Import 正在开发Golang包,无法使用相对路径,import,go,package,Import,Go,Package,我正在尝试开发一个简单的golang包 假设它的名字是“Hello”,目录结构如下所示 hello games game-utils 然后在hello.go(主代码)中,我有以下内容: import ( gameUtils "./game-utils" "./games" ) 好的,在我推到remote repo(例如github.com)并尝试使用go-get安装它之前,这一切都很好。问题在于导入路径,我必须将其更改为 import ( gameUtil
hello
games
game-utils
然后在hello.go(主代码)中,我有以下内容:
import (
gameUtils "./game-utils"
"./games"
)
好的,在我推到remote repo(例如github.com)并尝试使用go-get
安装它之前,这一切都很好。问题在于导入路径,我必须将其更改为
import (
gameUtils "github.com/user/hello/game-utils"
"github.com/user/hello/games"
)
问题是,每次我开发包时,我都无法使用“github.com/user/hello/game utils”
导入,因为显然我不会将其推送到远程repo,我需要使用“/game utils”
导入它
有什么优雅的方法可以解决这个问题吗?请阅读
您应始终使用以下方式导入它:
import "github.com/user/hello/game-utils"
这是因为go工具是如何工作的。它将在本地计算机上的目录中查找它:“GOPATH/src/github.com/user/hello/game-utils”
。正如@JimB指出的,编译器总是与本地源一起工作,并且导入路径是相对于GOPATH/src
的
go-get
工具是唯一一个在internet上查找源的工具。获取它们之后,它将它们下载到“GOPATH/src/IMPORT_PATH”
,这样编译器和其他工具现在就可以在它们的本地结构中看到它们
如果您正在创建一个新项目,您应该遵守相同的目录结构。如果您计划将代码上载到github,请手动创建文件夹“GOPATH/src/github.com/your-github-USER/PROYECT-NAME”,然后在其中初始化git repo。(这至少适用于
git
、hg
、svn
和github
、bitbucket
和google code
)@Topo Hi感谢您的快速响应,所以总结一下,我只需要:1<代码>导入gameUtils“github.com/user/hello/game utils”2。使用go install github.com/user/hello
3安装。cd到repo$GOPATH/src/github….
4。然后在那里开始开发(测试、提交、等等)?@sendyhalim不客气。你基本上是对的。关于2号的细节。使用go-get(非go-install)获取源代码。如果我要修改我用“go get”下载的代码,我更喜欢自己创建目录结构,用“git clone”获取代码,以我的经验,这有助于避免以后进行一些git repo配置。@Topo ok!哈哈。另外,如果我还没有推出任何代码,那么唯一的方法就是手动创建dir(“$GOPATH/src/user/hello”)并在那里开发,对吗?