慕工程0101907
2021-05-06 18:01:59
如何從父目錄進行相對導入?來自meme/cmd/meme:import "../../../meme"這給出了一個模棱兩可的錯誤:matt@stanley:~/gopath/src/bitbucket.org/anacrolix/meme/cmd/meme$ go get bitbucket.org/anacrolix/meme/cmd/memecan't load package: /home/matt/gopath/src/bitbucket.org/anacrolix/meme/cmd/meme/main.go:8:2: local import "../../../meme" in non-local package
matt@stanley:~/gopath/src/bitbucket.org/anacrolix/meme/cmd/meme$ echo $GOPATH
/home/matt/gopath如何從父目錄本地導入?
3 回答

白衣非少年
TA貢獻1155條經(jīng)驗 獲得超0個贊
感謝您添加到您的問題。首先是一個答案,然后是一些解釋。我建立了您的代碼,
去獲得,就像你擁有它一樣。(我忽略了錯誤消息。)
main.go
如您所愿,將導入行設置回“ ../../../meme”。(注釋掉一些包含未使用變量的代碼。)
然后在梅梅/ CMD /米姆目錄,要么
go run main.go
或者go build main.go
工作。
剛才我說去安裝的時候,我的評論是錯誤的。我應該說去建造。
但是,關鍵是go build
單靠它是行不通的。您必須輸入go build main.go
。這是因為go命令不允許“非本地包中的本地導入”。沒錯,規(guī)范在這里無濟于事。它不高興地說:“ ImportPath的解釋取決于實現(xiàn)?!?nbsp;當前的實現(xiàn)行為是由CL 5787055設置的,其后在Go-nuts上進行了詳細討論。
“本地”是指用文件系統(tǒng)相對路徑指示。顯然,以..開頭的相對路徑是本地的,所以竅門就是讓go
命令也將main視為本地包。鍵入時顯然不會這么做,鍵入go build
時卻可以go build main.go
。
- 3 回答
- 0 關注
- 360 瀏覽
添加回答
舉報
0/150
提交
取消