小编mik*_*ero的帖子

重命名后Golang相对包导入

我的 $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),包导入的最佳实践是什么?
那么我需要手动更新导入的包的名称吗?

package go

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×1

package ×1