Go環(huán)境變量配置,及GOROOT、GOPATH的區(qū)別小結(jié)
一、安裝Go
go下載地址:
windows下載安裝,有兩種方式。解壓和直接安裝
方式一:直接下載安裝包。以.msi結(jié)尾的文件。例如:
下載后,雙擊后一直點(diǎn)下一步即可安裝成功。
方式二:下載壓縮包文件,直接解壓。解壓后配置環(huán)境變量即可。例如:
下載完成,放到自己電腦的目錄里面,然后解壓,加壓后得到如下文件:
二、配置Go環(huán)境變量
右擊電腦 -> 屬性 -> 高級(jí)系統(tǒng)設(shè)置 -> 環(huán)境變量。打開環(huán)境變量設(shè)置窗口
增加:增加兩個(gè)環(huán)境變量:GOROOT、GOPATH
GOROOT:GO的安裝目錄,相當(dāng)于java中的jdk
GOPATH:GO的項(xiàng)目工作目錄,以后開發(fā)的代碼就寫到這個(gè)文件夾中。
配置GOROOT:
GOPATH和GOROOT的配置略有不同,我建議配置兩個(gè)GOPATH目錄,第一個(gè)用于放 Go 語(yǔ)言的第三方包,第二個(gè)用于放自己的開發(fā)代碼。我們來(lái)新建GOPATH。點(diǎn)擊系統(tǒng)變量下的新建,在變量名一欄輸入GOPATH,在變量值一欄輸入任意兩個(gè)目錄,中間用英文分號(hào)隔開。
配置GOPATH
然后將新建的GOROOT配置到 Path 這個(gè)環(huán)境變量中去,在系統(tǒng)變量中找到 Path,點(diǎn)擊編輯->新建,輸入%GOROOT%\bin,點(diǎn)擊確定。并將所有母窗口的確定全部點(diǎn)下,確保環(huán)境變量生效。
這樣就配置完了,一路點(diǎn)擊確定,直到桌面;
檢查是否配置成功。
windows+R 輸入 cmd 打開終端,輸入go version,如果輸出如下圖所示,則安裝成功。
#查看Go版本 go version #查看Go環(huán)境變量 go env
配置GO111MODULE、GOPROXY、GOSUMDB
GO111MODULE:為啥是111呢,這是沖go的1.11版本增加的一個(gè)功能。用于管理第三方包的,如果這個(gè)開啟的話,gopath這個(gè)變量基本上就用不到了。
Go默認(rèn)的GOPROXY的值是:GOPROXY=https://proxy.golang.org,direct。這個(gè)goproxy在使用go get安裝第三方庫(kù)的時(shí)候會(huì)報(bào)錯(cuò),導(dǎo)致無(wú)法下載成功,所以必須要修改一下。
比如改為:https://goproxy.io,direct (七牛鏡像)
或 https://mirrors.aliyun.com/goproxy(阿里云鏡像)
配置go變量的一些命令:
#開啟mod模式(項(xiàng)目管理需要用到) go env -w GO111MODULE=on #重新設(shè)置成七牛鏡像源(推薦)或阿里鏡像源(用原有的會(huì)比較慢) go env -w GOPROXY=https://goproxy.cn,direct go env -w GOPROXY=https://mirrors.aliyun.com/goproxy #關(guān)閉包的MD5校驗(yàn) go env -w GOSUMDB=off #查看環(huán)境變量 go env
三、GoRoot
GOROOT是go的安裝路徑。GOROOT目錄下有bin、doc、src等。如下圖:
四、GoPath
GOPATH:是開發(fā)的工作目錄。用于保存編譯后的二進(jìn)制文件。go get命令和go install命令會(huì)下載go的代碼到GOPATH中。
使用GOPATH時(shí),項(xiàng)目中import引用的第三方包,首先會(huì)從GOROOT/src下搜索,如果搜索不到,會(huì)到GOPATH/src目錄下搜索。
舉個(gè)例子吧:
比如go項(xiàng)目中,應(yīng)用了如下第三方包:
import "Go-Player/src/chapter17/models"
第一步:Go會(huì)先去GOROOT/src目錄中查找,很顯然它不是標(biāo)準(zhǔn)庫(kù)的包,沒(méi)找到。
第二步:繼續(xù)在GOPATH/src目錄去找,準(zhǔn)確說(shuō)是GOPATH/src/Go-Player/src/chapter17/models這個(gè)目錄。如果該目錄不存在,會(huì)報(bào)錯(cuò)找不到package。
在使用GOPATH管理項(xiàng)目時(shí),需要按照GO尋找package的規(guī)范來(lái)合理地保存和組織Go代碼。
五、go-mod
開啟GO111MODULE時(shí),即GO111MODULE=on,再項(xiàng)目中引用第三方包時(shí),仍然使用GOPATH的方式進(jìn)行引用,這時(shí)在引用時(shí)會(huì)報(bào)錯(cuò)。
GO111MODULE 有三個(gè)值:off, on和auto(默認(rèn)值)。
GO111MODULE=off,go命令行將不會(huì)支持module功能,尋找依賴包的方式將會(huì)沿用舊版本那種通過(guò)vendor目錄或者GOPATH模式來(lái)查找。
GO111MODULE=on,go命令行會(huì)使用modules,而一點(diǎn)也不會(huì)去GOPATH目錄下查找。
GO111MODULE=auto,默認(rèn)值,go命令行將會(huì)根據(jù)當(dāng)前目錄來(lái)決定是否啟用module功能。
這種情況下可以分為兩種情形:
當(dāng)前目錄在GOPATH/src之外且該目錄包含go.mod文件,即使用go mod對(duì)項(xiàng)目的第三方依賴進(jìn)行管理,不再使用gopath的方式
當(dāng)前文件在包含go.mod文件的目錄下面。
當(dāng)modules 功能啟用時(shí),依賴包的存放位置變更為$GOPATH/pkg,允許同一個(gè)package多個(gè)版本并存,且多個(gè)項(xiàng)目可以共享緩存的 module。
到此這篇關(guān)于Go環(huán)境變量配置,及GOROOT、GOPATH的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Go環(huán)境變量配置 GOROOT GOPATH內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用go語(yǔ)言實(shí)現(xiàn)Redis持久化的示例代碼
redis 是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),如果你把進(jìn)程殺掉,那么里面存儲(chǔ)的數(shù)據(jù)都會(huì)消失,那么這篇文章就是來(lái)解決 redis 持久化的問(wèn)題,本文給大家介紹了使用go語(yǔ)言實(shí)現(xiàn)Redis持久化,需要的朋友可以參考下2024-07-07如何在golang中使用shopspring/decimal來(lái)處理精度問(wèn)題
本文主要介紹了如何在golang中使用shopspring/decimal來(lái)處理精度問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04go mayfly開源項(xiàng)目代碼結(jié)構(gòu)設(shè)計(jì)
這篇文章主要為大家介紹了go mayfly開源項(xiàng)目代碼結(jié)構(gòu)設(shè)計(jì)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11golang 實(shí)現(xiàn)時(shí)間滑動(dòng)窗口的示例代碼
滑動(dòng)時(shí)間窗口就是把一段時(shí)間片分為多個(gè)樣本窗口,可以通過(guò)更細(xì)粒度對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),這篇文章主要介紹了golang 實(shí)現(xiàn)時(shí)間滑動(dòng)窗口,需要的朋友可以參考下2022-10-10