2015-01-15 115 views
2

我只是用自制軟件安裝golang,而且我無法導入遠程軟件包。golang遠程導入失敗

,當我嘗試安裝裝配demo.go包含

import "github.com/bradfitz/gomemcache/memcache" 

我收到以下錯誤

$ go install 
demo.go:3:8: cannot find package "github.com/bradfitz/gomemcache/memcache" in any of: 
/usr/local/Cellar/go/1.4/libexec/src/github.com/bradfitz/gomemcache/memcache (from $GOROOT) 
/Users/white/go/src/github.com/bradfitz/gomemcache/memcache (from $GOPATH) 

爲了我的外行人看來它看起來像它只是在本地上我GOPATH尋找。

+1

有沒有這樣的事情作爲「遠程導入」。所有導入都是本地的,它們只是爲了方便而恰好使用它們的URL。 – JimB

回答

5

這意味着你需要先得到它:

go get github.com/bradfitz/gomemcache/memcache 

這是bradfitz/gomemcache建議什麼。

+0

所有遠程導入都是如此嗎?這不僅僅是memcache包給了我這個錯誤。 – honkskillet

+1

@honkskillet golang包的導入不會涉及到,因爲它們在你的'$ GOROOT'中。其餘的將涉及'去獲取'。 – VonC

+0

我必須先設置GOPATH –

2

你未經訓練的眼睛並不是在愚弄你:編譯器只會查找本地存儲的代碼。

但是,go get工具可用於提取存儲在遠程存儲庫中的代碼並將其複製到本地。所以,如果你鍵入:

go get github.com/bradfitz/gomemcache/memcache

你將有代碼的副本$GOPATH/src/github.com/bradfitz/gomemcache/memcache

注意github.com/bradfitz/gomemcahce/memcache實際上是一個本地目錄路徑,讓你用import "github.com/bradfitz/gomemcache/memcache"將其導入你的代碼。它恰好也是go get工具知道如何獲取的遠程存儲庫的名稱。