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://blog.csdn.net/whatday/article/details/100135566

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

golang 第三方包的使用总结相关推荐

  1. 发布golang第三方包

    事情是这样的,随着公司的业务的增长.各种重复的工作越来约多.CV久了就想在进一步的那啥,毕竟我懒,不是.我就想着能不能把那些重复cv的干脆写成一个第三方包,进行调用.咱不谈那些啥封装啥的,我也想过,我 ...

  2. [Golang] 第三方包应该如何安装--在线和离线

    一 在线安装 采用go get的方式安装 import 的时候找不到对应的包看看pkg里面有没有 二 离线安装 redis客户端采用git clone的方法安装的话可以用以下方法 cd src git ...

  3. go使用第三方包和本地包

    前言 go之前对第三方包的管理不上心,其他语言比如python有pip,nodejs有npm,而go却没有一个官方的管理工具. 在go 1.11之前,开发者需要要关注GOPATH环境变量,这对于开发者 ...

  4. sublime golang 开发的时候(go get)第三方包没办法自动提示问题

    为什么80%的码农都做不了架构师?>>>    昨天安装好golang 开发工具ide sublime-go的时候 发现go get过来的第三方包不能自动提示 上网找到了很多都没有找 ...

  5. golang中go mod使用第三方包

    go mod init #在代码中引入第三方包之后执行下面的命令 go mod download go run xxx.go

  6. golang 学习(二十六)第三方包的下载和安装

    第三方包的下载和安装 go 第三方包下载网址 https://pkg.go.dev/ 1.go mod int 初始化项目,生成go.mod文件 2.项目中添加需要引入的包 import (" ...

  7. 【报错解决-Golang】go mod 安装第三方包提示:module declares its path as: ××× but was required as: ×××

    go mod 安装第三方包提示:module declares its path as: ××× but was required as: ××× 解决办法 今天使用 go mod tidy 和 go ...

  8. 【golang程序包推荐分享】go-ini、viper、godoc

    [golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...

  9. golang 理解包导入

    Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java .python等语言相比,这算不上什么创新,但与C传统的include相比,则是显 ...

最新文章

  1. MATLAB从入门到精通-辅助ANSYS APDL进行负泊松比铰链结构建模仿真(附源码)
  2. 吴恩达 coursera AI 专项二第一课总结+作业答案
  3. NoSQL为什么需要模式自由的ETL工具:不知道的大概都没用过!
  4. 我的手机,被“探针”了吗?
  5. bboss 会话管理session操作使用示例
  6. js类型判断(数字、0、、undefined、null)
  7. jdi屏幕斜纹_如何看待小米6使用有斜纹的jdi屏幕?
  8. 原生社区交友婚恋视频即时通讯双端APP源码 ONE兔2.0版
  9. 【量化笔记】股票收益率与风险计算
  10. CHK文件恢复工具v2.0绿色版
  11. 公网Kamailio 代理 freeswitch 和做 sbc
  12. html网页表格线条设置,css怎么设置表格边框?
  13. 【协议森林】基于DPDK的原生态协议栈DPDK-ANS
  14. PXIe,PXI,CPCI相互区别和关系,总线之间,几种机箱之间是否兼容?
  15. 修改Cisco交换机ntp服务器,Cisco交换机时间服务(NTP)的设置步驟
  16. Android NDK编译常见错误及解决方案
  17. conflicts with file from package 解决办法
  18. steam账号分享工具、迅游账号分享工具说明:
  19. 网页源码的编码与解码
  20. 以太坊黄皮书(1~6章)

热门文章

  1. OTA常见方案分析(差分升级 全量升级 AB面升级 Recovery系统升级)
  2. 苹果Q1财报出炉:手机收入下滑15%,服务收入增长19%
  3. Dubbo OPS工具——dubbo-admin dubbo-monitor
  4. cf559C. Gerald and Giant Chess(容斥原理)
  5. 搭建环境_maven: 搭建工程: ssm整合: 搭建测试:
  6. nutch2.1+mysql报错及解决
  7. Linux安装Android开发环境
  8. 写了一个在线流程设计器,效果很炫[Siverlight版本]
  9. 喜欢 Netflix 么?你应该感谢 FreeBSD
  10. ABAP的HTTP_GET和Linux的curl