go語(yǔ)言import報(bào)錯(cuò)處理圖文詳解
import 認(rèn)識(shí)
go的import有兩種形式
第一種是GOPATH下項(xiàng)目文件管理
第二種是Go Modules
初學(xué)狀態(tài)我用的vscode.在兩個(gè)文件夾中調(diào)用全局變量。
在地址引用時(shí)出現(xiàn)錯(cuò)誤。
通過(guò)查詢知道了兩種方法之間的區(qū)別就在與GO111MODULE的設(shè)置問(wèn)題。
若是用第一種方法就把變量值設(shè)置為off或者auto。
若是用第二種方法就把變量值值設(shè)置為on。
然后就會(huì)看到import引用的地址爆紅。
運(yùn)行顯示
project01\main\demo6\main\main.go:6:2: package go_code/project01/main/demo6/model1 is not in GOROOT (E:\go\src\go_code\project01\main\demo6\model1)
出現(xiàn)這種情況就是使用了Go Modules方式。需要在使用的工作空間設(shè)置一個(gè)go.mod的文件。
在終端中輸入go mod init
模塊名
go mod tidy
如果用auto模式,那就是讓系統(tǒng)自己選擇是那種方式。把項(xiàng)目移動(dòng)到$GOPATH/src外
進(jìn)入目錄,運(yùn)行 go mod init
+ 模塊名稱
go build 或者 go run 一次。
初學(xué)者,要想解決爆紅問(wèn)題,直接在環(huán)境變量中吧on或者auto改為off就可以了。
補(bǔ)充:Go語(yǔ)言不支持相對(duì)路徑import導(dǎo)入包
Go是一門非常簡(jiǎn)潔,且工程化完備的現(xiàn)代化開(kāi)發(fā)語(yǔ)言。但在 go mod 模塊開(kāi)發(fā)時(shí),不像python那樣,import不支持相對(duì)路徑導(dǎo)入。本地包必須使用全路徑。本文嘗試探索此問(wèn)題。
問(wèn)題的產(chǎn)生
在github上fork一個(gè)開(kāi)源項(xiàng)目之后,想要修改部分代碼后供公司項(xiàng)目使用。發(fā)現(xiàn)需要修改源項(xiàng)目中的所有內(nèi)部import,例如開(kāi)源模塊 M中存在P1、P2等package, 其中P2 import P1的import路徑為 “github.com/someone/M/P1”,而我fork的分支里則是需要import 自己修改后的 "github.com/myself/M/P1",與此類似,整個(gè)開(kāi)源項(xiàng)目里很多這種地方都需要修改。
所以引出了對(duì)相對(duì)路徑導(dǎo)入的思考,有沒(méi)有什么辦法支持相對(duì)路徑的導(dǎo)入而方便fork之后的差異開(kāi)發(fā)呢?
原因
從以下幾個(gè)問(wèn)題可以看出,對(duì)于Go語(yǔ)言來(lái)說(shuō),包相對(duì)路徑的引入,并不是一個(gè)好的方案:
- 會(huì)與官方標(biāo)準(zhǔn)包的導(dǎo)入相混淆
- 增加相對(duì)導(dǎo)入包的軟件管理難度
- 影響了
go get
命令的使用 - 不方便自動(dòng)生成Go開(kāi)發(fā)標(biāo)準(zhǔn)文檔
相對(duì)路徑導(dǎo)包示例:
import( "./package1" "./package2" "./package3" )
在 go mod
開(kāi)發(fā)模式下,相對(duì)路徑的導(dǎo)包方式不支持。會(huì)報(bào)錯(cuò)誤:local import "./package1" in non-local package
相對(duì)路徑導(dǎo)入本地包,會(huì)在 GOPATH 的軟件包目錄中搜索導(dǎo)入。而不是在本項(xiàng)目中導(dǎo)入。
總結(jié)
到此這篇關(guān)于go語(yǔ)言import報(bào)錯(cuò)處理的文章就介紹到這了,更多相關(guān)go語(yǔ)言import報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu18.04 LTS搭建GO語(yǔ)言開(kāi)發(fā)環(huán)境過(guò)程解析
這篇文章主要介紹了Ubuntu18.04 LTS搭建GO語(yǔ)言開(kāi)發(fā)環(huán)境過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Go語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的并發(fā)聊天室的項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了Go語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的并發(fā)聊天室的項(xiàng)目實(shí)戰(zhàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03學(xué)會(huì)提升Go語(yǔ)言編碼效率技巧拒絕加班!
這篇文章主要為大家介紹了Go語(yǔ)言編碼效率提升技巧詳解,學(xué)會(huì)了從此拒絕加班,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12golang如何設(shè)置Header Content-type
這篇文章主要介紹了golang如何設(shè)置Header Content-type問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Go語(yǔ)言編譯程序從后臺(tái)運(yùn)行,不出現(xiàn)dos窗口的操作
這篇文章主要介紹了Go語(yǔ)言編譯程序從后臺(tái)運(yùn)行,不出現(xiàn)dos窗口的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04go語(yǔ)言單元測(cè)試基準(zhǔn)測(cè)試及表驅(qū)動(dòng)測(cè)試示例詳解
這篇文章主要為大家介紹了go語(yǔ)言單元測(cè)試基準(zhǔn)測(cè)試及表驅(qū)動(dòng)測(cè)試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Go語(yǔ)言實(shí)現(xiàn)操作MySQL的基礎(chǔ)知識(shí)總結(jié)
這篇文章主要總結(jié)一下怎么使用Go語(yǔ)言操作MySql數(shù)據(jù)庫(kù),文中的示例代碼講解詳細(xì),需要的朋友可以參考以下內(nèi)容,希望對(duì)大家有所幫助2022-09-09