我的 $GOPATH 是"/Users/peter/goworkspace"我目前的 golang 版本:go version go1.6 darwin/amd64我在這個工作空間下有多個 golang 項目,所以這里是目錄的結(jié)構(gòu)+/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條經(jīng)驗 獲得超10個贊
規(guī)則#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 關注
- 223 瀏覽
添加回答
舉報
0/150
提交
取消
