go語言,安裝包fetch error 問題解決方案


 

最近需要安裝grequests,出現了下面的error

[fdf@zxmrlc ~]$ go get github.com/levigross/grequests
package golang.org/x/net/publicsuffix: unrecognized import path "golang.org/x/net/publicsuffix" (https fetch: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
[fdf@zxmrlc ~]$ go get -u -v github.com/levigross/grequests
github.com/levigross/grequests (download)
github.com/google/go-querystring (download)
Fetching https://golang.org/x/net/publicsuffix?go-get=1
https fetch failed: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
package golang.org/x/net/publicsuffix: unrecognized import path "golang.org/x/net/publicsuffix" (https fetch: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

一般解決方案

1.翻牆(科學上網)。

2.安裝net包

golang 在 github 上建立了一個鏡像庫,如 https://github.com/golang/net 即是 https://golang.org/x/net 的鏡像庫

獲取 golang.org/x/net 包,其實只需要以下步驟:

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git

很早之前已經安裝了net包但是依舊出現問題

[fdf@zxmrlc ~]$ echo $GOPATH

[fdf@zxmrlc ~]$ echo $GOROOT

[fdf@zxmrlc ~]$ go env | grep GOPATH
GOPATH="/home/fdf/go"

查看history,出現問題的情況在於 環境變量的加載

gopath缺失,默認go env gopath為~/go,找不到net包。

開始以為:

圖形界面啟動終端操作是non-login shell,正常。

ssh 遠程登錄時是login shell,出現問題。

但是發現都會讀取配置文件。最終發現在ssh登錄用戶的問題。

ssh用的root用戶登錄,然后gopath在非root用戶環境變量配置文件。導致出現的gopath缺失。

解決方案 (vim 只是確認GOPATH在環境變量)

或者將GOPATH添加進全局環境變量配置文件

[fdf@zxmrlc ~]$ rm -rf go
[fdf@zxmrlc ~]$ vim ~/.bash_profile
[fdf@zxmrlc ~]$ source ~/.bash_profile
[fdf@zxmrlc ~]$ go env | grep GOPATH
GOPATH="/home/fdf/golang"
[fdf@zxmrlc ~]$ echo $GOPATH
/home/fdf/golang
[fdf@zxmrlc ~]$ go get -u github.com/levigross/grequests

 


免責聲明!

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



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