最近需要安裝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