刚开始学习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])
}
}
}
答案 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的开发者。皮普是其中的灵感之一。