go: go.mod file not found in current directory or any parent directory; see 'go help mod 解決


go: go.mod file not found in current directory or any parent directory; see 'go help mod 

go:在當前目錄或任何父目錄中找不到 go.mod 文件; 參見“去幫助模塊”

1、原因go module沒有開啟

yang@master:~/go/GOROOT/bin/hello$ go env
GO111MODULE=""

2、解決辦法:

go的環境設置問題,執行:

go env -w GO111MODULE=auto

3、查看:

yang@master:~/go/GOROOT/hello$ go env
GO111MODULE="auto"
GOARCH="amd64"

 

GO111MODULE

GO111MODULE是 go modules 功能的開關,關於go modules本文不詳述,這個涉及到go的一種很重要的管理機制,后面會有專門的文章來分析,我們可以簡單的理解為,在沒有go modules機制時,go工程中對於第三方功能包的管理非常復雜,也非常專業,這就導致程序員在進行開發的時候,對於第三方功能包的管理很不方便,所以才有了go modules機制。這個機制的開關是通過GO111MODULE環境變量來配置的。

  GO111MODULE=off,無模塊支持,go命令行將不會支持module功能,尋找依賴包的方式將會沿用舊版本那種通過vendor目錄或者GOPATH模式來查找。
  GO111MODULE=on,模塊支持,go命令行會使用modules,而一點也不會去GOPATH目錄下查找。
  GO111MODULE=auto,默認值,go命令行將會根據當前目錄來決定是否啟用module功能。這種情況下可以分為兩種情形:
  
 當前目錄在GOPATH/src之外且該目錄包含go.mod文件,開啟模塊支持。
 當前文件在包含go.mod文件的目錄下面。
 注:
 在使用go modules時,GOPATH是無意義的,不過它還是會把下載的依賴存儲在 $GOPATH/pkg/mod 中
 也會把go install 的結果放在 $GOPATH/bin 中。
 
 當modules 功能啟用時,依賴包的存放位置變更為$GOPATH/pkg
 允許同一個package多個版本並存,且多個項目可以共享緩存的module。
 命令設置如下:

 go env -w GO111MODULE=on
 注:如果后面不需要使用,可以再將值設置為off。
 
 注:其中 -w 表示 寫 操作。

鏈接:https://www.jianshu.com/p/f729e04a2378

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM