我的 $GOPATH 是
"/Users/peter/goworkspace"
Run Code Online (Sandbox Code Playgroud)
我当前的 golang 版本:
go version go1.6 darwin/amd64
Run Code Online (Sandbox Code Playgroud)
我在这个工作空间下有多个golang项目,所以这是目录结构
+/goworkspace
+---/bin
+---/pkg
+---/src
+---/project1
+---package1
+---file1.go
+---file2.go
+---file3.go
+---package2
+---package3
+---main.go
+---/project2
+---/project3
Run Code Online (Sandbox Code Playgroud)
在我的 proj1 的 main.go 中,我将使用该项目下其他包的导入,它将如下所示:
import(
"./package1"
"./package2"
"./package3"
)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行“go build”时,我不断收到错误消息:
“
无法加载包:非本地包中的本地导入“../package”
如果我不想使用相对包路径,例如使用它:
import(
"project1/package1"
"project1/package2"
"project1/package3"
)
Run Code Online (Sandbox Code Playgroud)
然后一切都会正常。
如果我使用相对包路径,我的代码有什么问题?
如果将来project1的名称发生变化(例如更改为projecet1v2),包导入的最佳实践是什么?
那么我需要手动更新导入的包的名称吗?