Go / golang - 是否有相当于python“pip install”的安装包?

时间:2016-01-03 20:40:30

标签: go

刚开始学习Go(人们会说“Go”还是“Golang”?)

我运行了hello world示例。我设置了GOROOT和GOPATH。

现在我想做一些更高级的事情,例如打开csv文件,为此我找到了一个教程here

为了使这个脚本工作,我需要导入的包,例如“bufio”,“encoding / csv”等。

我是否必须手动搜索https://github.com/golang/go/wiki/Projects或其他某些存储库,将这些存储库下载并解压缩到我的GOPATH“pkg”目录中?

或者Go / Golang是否有类似于Python的“pip install”的东西可以为我做这个?

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])
    }
    }
}

3 个答案:

答案 0 :(得分:9)

Go的go get类似于Python中的pip install。 (ref

答案 1 :(得分:5)

阅读这篇精美文档的每一行:https://golang.org/doc/code.html#Organization

顺便说一句,您导入部分中的所有软件包都来自标准库。因此,您不必为此示例安装任何内容。

安装软件包的最佳方式是go get,它只是将git repo克隆到您的$GOPATH/src,您应该尽可能坚持使用它。 如果必须使用某个软件包版本,您可以为指定的提交创建fork,并go get分叉或使用众多销售代码之一https://github.com/golang/go/wiki/PackageManagementTools

答案 2 :(得分:4)

Glide软件包管理器可能是您最近的pip选项。你有配置(和锁定)文件,可以指定版本等。

在Go 1.6发布之前,您需要为GO15VENDOREXPERIMENT=1工具设置环境变量go以拾取vendor/文件夹中的包。在Go 1.6中,这将默认打开。 Glide将包存储在vendor/文件夹而不是GOPATH中(即使根项目需要位于GOPATH中),以便不同的应用程序可以拥有并定期使用不同版本的依赖项。

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

披露:我是Glide的开发者。皮普是其中的灵感之一。