目錄
問題描述
解決方式
手動下載
設定代理
go mod replace
GOPROXY 環境變數
首頁 後端開發 Golang 快速解決go get golang.org/x 套件不成功的問題

快速解決go get golang.org/x 套件不成功的問題

Dec 02, 2021 pm 02:42 PM
get golang google

本文由go語言教學專欄為大家介紹如何一鍵解決 go get golang.org/x 套件失敗問題,希望對需要的朋友有幫助!

一鍵解決go get golang.org/x 套件失敗

問題描述

當我們使用go get go installgo mod 等指令時,會自動下載對應的套件或依賴套件。但由於眾所周知的原因,類似於 golang.org/x/... 的套件會出現下載失敗的情況。如下圖:

$ go get -u golang.org/x/sys

go get golang.org/x/sys: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
登入後複製

解決方式

那我們該如何解決問題呢?畢竟還要製造bug 的嘛~

手動下載

我們常見的golang.org/x/... 包,一般在GitHub 上都有官方的鏡像倉庫對應。如 golang.org/x/text 對應 github.com/golang/text。所以,我們可以手動下載或 clone 對應的 GitHub 倉庫到指定的目錄下。

mkdir $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone git@github.com:golang/text.git
rm -rf text/.git
登入後複製

當如果需要指定版本的時候,該方法就無解了,因為 GitHub 上的鏡像倉庫多數都沒有 tag。而且,手動嘛,程式設計師怎麼能幹呢,尤其是依賴的依賴,太多了。

設定代理

如果你有代理,那麼可以設定對應的環境變數:

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port
登入後複製

或者,直接用all_proxy

export all_proxy=http://proxyAddress:port
登入後複製

go mod replace

從Go 1.11 版本開始,新增支援了go modules 用來解決套件依賴管理問題。工具提供了 replace,就是為了解決套件的別名問題,也能替我們解決 golang.org/x 無法下載的問題。

go module 被整合到原生的go mod 指令中,但如果你的程式碼庫在$GOPATH 中, module 功能是預設不會開啟的,想要開啟也非常簡單,透過一個環境變數即可開啟export GO111MODULE=on

以下為參考範例:

module example.com/hello

require (
    golang.org/x/text v0.3.0
)

replace (
    golang.org/x/text => github.com/golang/text v0.3.0
)
登入後複製

類似的還有 glide、gopm 等這類第三方套件管理工具,都不同方式的解決方案提供給我們。

GOPROXY 環境變數

終於到了本文的終極大殺器 —— GOPROXY

我們知道從 Go 1.11 版本開始,官方支援了 go module 套件依賴管理工具。

其實也新增了 GOPROXY 環境變數。如果設定了該變量,下載原始程式碼時將會透過這個環境變數設定的代理位址,而不再是先前直接從程式碼庫下載的。這無疑對我等無法科學上網的開發良民來說是最大的福音。

更可喜的是,goproxy.io 這個開源專案幫我們實現了我們想要的。此專案允許開發者一鍵建立自己的 GOPROXY 代理服務。同時,也提供了公用的代理服務https://goproxy.io,我們只需設定該環境變數即可正常下載被牆的原始碼包了:

export GOPROXY=https://goproxy.io
登入後複製

不過, 需要依賴go module 功能。可透過 export GO111MODULE=on 開啟 MODULE。

如果項目不在 GOPATH 中,則無法使用 go get ...,但可以使用 go mod ... 相關指令。

也可以透過置空這個環境變數來關閉,export GOPROXY=

對於Windows 用戶,可以在PowerShell 中設定:

$env:GOPROXY = "https://goproxy.io"
登入後複製

最後,我們當然推薦使用GOPROXY 這個環境變數的解決方式,前提是Go version >= 1.11

最後的最後,七牛也出了個國內代理 goproxy.cn 方便國內用戶更快的訪問不能訪問的包,真是良心。

以上是快速解決go get golang.org/x 套件不成功的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Google Pixel 9 Pro XL 接受桌面模式測試 Google Pixel 9 Pro XL 接受桌面模式測試 Aug 29, 2024 pm 01:09 PM

Google在 Pixel 8 系列中引入了 DisplayPort 替代模式,並且在新推出的 Pixel 9 系列中也採用了該模式。雖然它主要是為了讓您透過連接的螢幕鏡像智慧型手機顯示,但您也可以將其用於桌面

Pixel 9 Pro XL 的 Google Tensor G4 在 原神 方面落後於 Tensor G2 Pixel 9 Pro XL 的 Google Tensor G4 在 原神 方面落後於 Tensor G2 Aug 24, 2024 am 06:43 AM

谷歌最近回應了有關 Pixel 9 系列 Tensor G4 性能的擔憂。該公司表示,該 SoC 的設計初衷並不是為了超越基準。相反,該團隊專注於使其在 Google 想要的領域中表現良好。

谷歌向大多數用戶開放 AI Test Kitchen & Imagen 3 谷歌向大多數用戶開放 AI Test Kitchen & Imagen 3 Sep 12, 2024 pm 12:17 PM

谷歌的 AI Test Kitchen 包括一套供用戶使用的 AI 設計工具,現已向全球 100 多個國家的用戶開放。此舉標誌著世界各地的許多人第一次能夠使用 Imagen 3、Googl

Pixel 9 Pro XL 與 iPhone 15 Pro Max 相機比較顯示谷歌在視頻和變焦性能方面取得了令人驚訝的勝利 Pixel 9 Pro XL 與 iPhone 15 Pro Max 相機比較顯示谷歌在視頻和變焦性能方面取得了令人驚訝的勝利 Aug 24, 2024 pm 12:32 PM

Google Pixel 9 Pro 和 Pro XL 是Google對三星 Galaxy S24 Ultra 和蘋果 iPhone 15 Pro 和 Pro Max 等產品的回應。 YouTube 上的 Daniel Sin(請觀看下文)將 Google Pixel 9 Pro XL 與 iPhone 15 Pro Max 進行了一些比較

Google確認 Pixel 9 Pro Fold 因設計奇特而與官方無線充電配件不相容 Google確認 Pixel 9 Pro Fold 因設計奇特而與官方無線充電配件不相容 Sep 01, 2024 am 06:31 AM

Pixel 9 Pro Fold 類似於谷歌新生的可折疊部門的大轉變。事實上,Pixel 9 Pro Fold 和 Pixel Fold 之間的差異如此之大,以至於前者更多地與 OnePlus Open 進行比較(A 上的價格為 1,399.99 美元)

Google Pixel 9 Pro XL 在 DxOMark「全球」智慧型手機相機排名中排名第二 Google Pixel 9 Pro XL 在 DxOMark「全球」智慧型手機相機排名中排名第二 Aug 23, 2024 am 06:42 AM

谷歌的新 Pixel 9 系列推出了先前系列中沒有的新型號 Pixel 9 Pro XL。它本質上與非 XL 版本(在亞馬遜預訂)相同,但顧名思義,它具有更大的螢幕。兩個電子

第一支 Google Pixel 9a 影片展示了全面重新設計,還有傳言稱其發佈時間更早 第一支 Google Pixel 9a 影片展示了全面重新設計,還有傳言稱其發佈時間更早 Aug 27, 2024 am 06:35 AM

自從Google發布首款 Pixel 9 系列智慧型手機以來,幾乎沒有什麼時間過去了。事實上,它剛開始出貨 Pixel 9、Pixel 9 Pro 和 Pixel 9 Pro XL(亞馬遜售價 1,099 美元)。相比之下,Pixel 9 Pro Fold 的預訂則不會

Google對 Pixel 9 系列中 Tensor G4 基準測試成績不佳的回應 Google對 Pixel 9 系列中 Tensor G4 基準測試成績不佳的回應 Aug 20, 2024 pm 09:49 PM

從一開始,Google Pixel 系列就從來沒有想過要在效能基準測試中擊敗表現最好的競爭對手。 Google Pixel 9 系列的情況並沒有太大不同,因為早期基準測試結果表明 Tensor G4 相當出色

See all articles