溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

golang中包無法引入問題如何解決

發(fā)布時間:2023-03-16 14:28:10 來源:億速云 閱讀:169 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“golang中包無法引入問題如何解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“golang中包無法引入問題如何解決”吧!

問題背景

開發(fā)環(huán)境區(qū)分不同網(wǎng)段,同一個程序引入到另一個環(huán)境后,對應(yīng)的包無法下載

問題現(xiàn)象

程序?qū)肓硪粋€環(huán)境后,初始化操作就是下載包:執(zhí)行g(shù)o mod tidy后,出現(xiàn)下面錯誤

go: github.com/Sirupsen/logrus@v1.0.1: Get " https://proxy.golang.org/github.com/Sirupsen/logrus/@v/v1.0.1.mod": dial tcp: lookup proxy.golang.org : no such host

或者出現(xiàn)以下錯誤

go: github.com/Sirupsen/logrus@v1.0.1: Get " https://proxy.golang.org/github.com/Sirupsen/logrus/@v/v1.0.1.mod": dial tcp: lookup proxy.golang.org : getaddrinfow: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server

查看go.mod后,發(fā)現(xiàn)很多報紅,無法下載對應(yīng)的版本包,查閱相關(guān)資料,對go.mod有了一個深入了解

go.mod文件定義module路徑以及列出其他需要在build時引入的模塊的特定的版本。

module go_start
 
go 1.18
 
require (
    github.com/fsnotify/fsnotify v1.6.0
    github.com/gin-gonic/gin v1.8.1
    github.com/go-sql-driver/mysql v1.6.0
    github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
    github.com/shirou/gopsutil v2.21.11+incompatible
    github.com/spf13/viper v1.14.0
    github.com/valyala/fasthttp v1.40.0
    github.com/vkcom/engine-go v0.0.0-20181122144534-e2cc962e10cc
    github.com/wxnacy/wgo v1.0.4
    go.uber.org/zap v1.23.0
    gopkg.in/yaml.v3 v3.0.1
)

如上go.mod文件:聲明go_start路徑作為module的根目錄;go的運行版本為1.18;同時也聲明了module依賴特定版本的github.com/fsnotify/fsnotify v1.6.0和github.com/gin-gonic/gin v1.8.1等等

問題解決

根據(jù)報錯,嘗試舉措如下

1、強制開啟GO111MODULE

go env -w GO111MODULE=on

GO111MODULE開啟和關(guān)閉對Go的包無論是導(dǎo)入,還是下載使用,都有著非常大的區(qū)別,老版本可以說就沒有包管理器,無法實現(xiàn)類似npm install或者pip install -r requirements這樣的自動導(dǎo)入所有需要的包。并且go項目也被限制在了go的PATH文件夾中,導(dǎo)入也需要寫較長的路徑,十分不方便。GO111MODULE的出現(xiàn)就是用來解決上述所有的問題。

2、切換代理

查詢了一下當(dāng)前環(huán)境的GOPROXY地址:

go env GOPROXY
> http://另一個網(wǎng)段網(wǎng)絡(luò):端口/倉庫地址/,direct

執(zhí)行命令:

go env -w GOPROXY=http://另一個網(wǎng)段網(wǎng)絡(luò):端口/倉庫地址/,direct

重新執(zhí)行命令go mod tidy,完美通過!

感謝各位的閱讀,以上就是“golang中包無法引入問題如何解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對golang中包無法引入問題如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI