我的 $GOPATH 是"/Users/peter/goworkspace"我目前的 golang 版本:go version go1.6 darwin/amd64我在这个工作空间下有多个 golang 项目,所以这里是目录的结构+/goworkspace +---/bin +---/pkg +---/src +---/project1 +---package1 +---file1.go +---file2.go +---file3.go +---package2 +---package3 +---main.go +---/project2 +---/project3在我的 proj1 的 main.go 中,我将使用这个项目下其他包的导入,它看起来像:import( "./package1" "./package2" "./package3" ) 但是,当我运行“go build”时,我不断收到错误消息:“ 无法加载包:非本地包中的本地导入“../package”如果我不想使用相对包路径,例如使用它:import( "project1/package1" "project1/package2" "project1/package3" ) 那么一切都会好起来的。如果我使用相对包路径,我的代码有什么问题?如果 project1 的名称将来会更改,例如更改为 projecet1v2,那么包导入的最佳做法是什么?那么我是否需要手动更新导入包的名称?
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
规则#1:不要使用相对导入。这就是(部分)您遇到问题的原因。通读这个:https : //golang.org/doc/code.html#Library
使用完全限定的导入路径(如您所示):
import(
"project1/package1"
"project1/package2"
"project1/package3"
// Or ideally, so others can access it in the future:
"github.com/<yourusername>/project1/package4"
)
如果出于某种原因您想对软件包进行版本控制,您可以:
提供新的存储库(导入 URL)
使用类似 gopkg.in ( http://labix.org/gopkg.in )的服务来提供版本化的导入 URL (例如 gopkg.in/you/pkgname.v2)
- 1 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消