2016-01-03 28 views
1

剛剛開始學習Go(人們會說「Go」還是「Golang」?)Go/golang - 它是否具有與python「pip install」相同的安裝包?

我得到了hello world示例運行。我有我的GOROOT和GOPATH設置。

現在我想要做的事有點更先進,比如打開CSV文件,我發現了一個教程,做here

爲了使這個腳本工作,我需要被導入的包例如「bufio」,「encoding/csv」等。

我是否必須手動搜索https://github.com/golang/go/wiki/Projects或其他存儲庫,將它們下載並解壓到我的GOPATH「pkg」目錄中?

Go/Golang有一些等同於Python的「pip安裝」,可以爲我做到這一點嗎?

import (
    "bufio" 
    "encoding/csv" 
    "os" 
    "fmt" 
    "io" 
) 

func main() { 
    // Load a TXT file. 
    f, _ := os.Open("C:\\Users\\bb\\Documents\\Dropbox\\Data\\bc hydro tweets\\bchtweets.csv") 

    // Create a new reader. 
    r := csv.NewReader(bufio.NewReader(f)) 
    for { 
    record, err := r.Read() 
    // Stop at EOF. 
    if err == io.EOF { 
     break 
    } 
    // Display record. 
    // ... Display record length. 
    // ... Display all individual elements of the slice. 
    fmt.Println(record) 
    fmt.Println(len(record)) 
    for value := range record { 
     fmt.Printf(" %v\n", record[value]) 
    } 
    } 
} 
+0

嘿,這裏發生了什麼?負面點是什麼? – curtisp

+0

假設我沒有做任何研究是不正確的。我做了,並在60分鐘後問了一個認真的問題,並收到了兩個很好的答案。 SO還有什麼? – curtisp

+2

Genaki,原諒我,但在[golang.org->文檔 - >學習轉到第二個文檔是「如何編寫轉到代碼」](https://golang.org/doc/code.html)它有一個部分稱爲[遠程包](https://golang.org/doc/code.html#remote),其中涉及到你的問題。我們可以同意你的研究可能有點蓬鬆嗎? ;)閱讀文檔。徹底。真的,他們是值得的。 –

回答

9

Go有go get這類似於在Python pip install。 (ref

5

瞭解這個美麗的文檔的部分的每一行:https://golang.org/doc/code.html#Organization

順便說一句,你在進口部分都包從標準庫。所以你不必爲這個例子安裝任何東西。

安裝軟件包的最佳方式是go get,它只是簡單地將git庫回覆到您的$GOPATH/src,並且應該儘可能地堅持。 如果必須使用一些包的版本,你可以爲指定的提交和go get那叉子叉創建或使用許多vendoring toolds https://github.com/golang/go/wiki/PackageManagementTools

+0

好吧,我在GOPATH src文件夾中看到這些軟件包。我期待將它們放入我的應用程序的GOROOT/myapp/src文件夾中。獲得更清晰的感謝。 – curtisp

+1

@genoki去低谷,組織文件和所有應該清楚。我不知道你爲什麼期望lib在那裏。你可以閱讀關於GOROOT和GOPATH那裏:http://stackoverflow.com/questions/7970390/what-should-be-the-values-of-gopath-and-goroot – kopiczko

3

之一的Glide包管理器也許是到點子你最親密的選項。你必須配置(並鎖定)文件時,可以指定版本等

直到圍棋1.6超出你需要在vendor/文件夾爲go工具設置環境變量GO15VENDOREXPERIMENT=1皮卡包。在Go 1.6中,這將默認開啓。 Glide將包存儲在vendor/文件夾中,而不是GOPATH(即使根項目需要位於GOPATH中),以便不同的應用程序可以擁有並定期使用不同版本的依賴項。

如果你想要一些不同的東西有numerous package managers listed on the wiki

披露:我是Glide的開發者。 Pip是它的靈感之一。

相關問題