Golang(不存在)的包管理

本文介绍了Golang的包管理问题,包括GOPATH的使用、Govendor工具、Go 1.11后的Go Modules以及如何解决go get被墙的问题。重点讨论了Go Modules的引入和GOPROXY环境变量的使用,以解决GFW带来的下载困难。
摘要由CSDN通过智能技术生成

最近开始上手Golang,竟然一开始在包管理上就碰到不少问题,搜了一大圈,因此开一篇博文记录一下在Golang package managing里爬过的坑。

Golang的包管理不像Python那样健全,无论是使用conda还是pip,都可以很方便的指定版本,也可以非常容易通过tuna更换镜像源来克服GFW。而Golang中的go get命令其实只是一个下载repo代码并install的过程,并且 golang.org 网站是被墙的,所以 golang.org/x/ 底下的所有包基本都是没法下载的,而在下载 github.com 的包时也会经常因为依赖 golang.org 的包而无法下载完成。

Golang开发与GOPATH

一开始不知道,后来搞清楚以后很震惊的一点就是,在默认的Golang开发模式下,所有工程(包括自己写的)都要放在$GOPATH/src里,虽然可以将工作目录加入GOPATH来反向满足这个条件,但感觉这就像每次写一个Python工程就要把其加入PYTHONPATH一样奇怪。如果不放在GOPATH中的话,引用工程内的其他包都做不到(所以Goland可以配置project GOPATH来避免这点)。不过Golang本身就是语言直接定死标准。

而import一个包,实际上就是在若干个PATH中寻找对应的文件夹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值