golang 第三方包的使用总结

科陆李明 · · 9238 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang 第三方包的安装的方法:

1. go get 安装

# 比如要安装 "github.com/gin-gonic/gin"
$ go get github.com/gin-gonic/gin
  • 注意:执行go get 命令需要先安装git命令,并配置git全局变量。

2. 源码包安装

由于国内网络问题,很多时候go get命令并不能安装,所以就需要手动下载源码包,然后拷贝到$GOPATH/sr/ 目录下

# 比如要安装"github.com/golang/protobuf/proto"
# 去github.com/golang/protobuf下载源码包,
# 拷贝到 $GOPATH/src/github.com/golang/protobuf

$ cd $GOPATH/src/github.com/golang/protobuf
$ go install
  • 注意:第三包安装完成后,应用程序导入包时还是使用的源码,而非 $GOPATH/pkg/ 下的 .a文件。如何能像标准包fmt一样直接使用pkg,还需进一步研究。
  • 注意:上面直接写的$GOPATH,在 GOPATH 只有一个目录的时候可以这样写,按tab键就会自动切换为实际目录,如果 GOPATH 配置了多个目录则要输入具体的目录。

golang 使用第三方包

使用方式

在应用程序中直接impor即可

// 比如要使用  "github.com/gin-gonic/gin"
import "github.com/gin-gonic/gin"
  • 注意:GO 和Java 不同的是:所有import的包必须在%GOPATH路径下,如果直接导入源码路径下的包,编译会报错。因为GO只会在$GOPATH 下找包的依赖,而不会在当前工程下找。

golang 增加环境变量

很多时候我们并不希望自己的工程代码和下载的第三方包代码混在一起,这时候就想自己建一个目录,但是我们知道,执行go install 的时候,必须在 $GOPATH 路径下,所以我们要将自己的自己新建的目录加入到$GOPATH中。比如我在/home/jerry/go/ 下面建了src/ 目录,里面放的是我自己写的包 myMax/myMax.go

# 使用 vim 打开 ~/.bash 文件
$ vim ~/.bash
# 在里面添加刚才自己新建的工作目录
export GOPATH=$GOPATH:/home/jerry/go/
# 退出 vim 并让更改立即生效
$ source ~/.bash
# 安装自己的包, 发现不会报错了
$ cd ~/go/src/myMax/
$ go install

包管理工具 govendor 的安装

按照上面的方法按照,安装完以后再$GOPATH/bin/目录下就可看到有一个govendor文件

$ ll ~/workspace/bin/
-rwxrwxr-x 1 jerry jerry 13146288 Jul 23 04:44 govendor*
# 将govendor 添加到环境变量
$ vim ~/.bash
# 在vim文件中添加
export PATH=$PATH:/home/jerry/workspace/bin/
$ source ~/.bash

govendor 的使用

进过前面的配置,我们现在已经可以在自己的目录下使用govendor命令了。

$ cd ~/go/src/myMax/
# 生成vendor目录,生成vendor.jso
$ govendor init
$ cat vendor/vendor.json 
{
	"comment": "",
	"ignore": "test",
	"package": [],
	"rootPath": "myMax"
}

添加依赖包到vendor目录下

# govendor add +e 也可以
$ govendor add +external

理解golang包导入

https://www.cnblogs.com/sevenyuan/p/4548748.html

  1. 在使用第三方包的时候,实际上是链接了以该最新源码编译的临时目录下的.a文件。
  2. import后面的最后一个元素应该是路径,就是目录,并非包名。
  3. fmt.Println()中的fmt则是包名。
  4. import m "lib/math" 中的m是包名。

有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:科陆李明

查看原文:golang 第三方包的使用总结

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

9238 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传