go语言中如何安装第3方的包

go第三方包的安装地址

然后引入第三方的包

1,初始化项目 go mod init 项目名称

2,在项目中使用这个包,下载依赖 go mod tidy

go 复制代码
package main

import (
	"fmt"
	"github.com/shopspring/decimal"  // 引入这个包
)

func main() {
	price, err := decimal.NewFromString("136.02")
	if err != nil {
		panic(err)
	}
	fmt.Println(price)
}

执行go mod tidy 安装依赖报错

vbnet 复制代码
day01.go PS D:\study\goxm>  go mod tidy

go: finding module for package github.com/shopspring/decimal

go: goStudy imports

github.com/shopspring/decimal: module github.com/shopspring/decimal: Get " https://proxy.golang.org/github.com/shopspring/decimal/@v/list ": dial tcp 142.250.197.241:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 

报错原因 :Go 默认从proxy.golang.org (Google 服务器)下载第三方包,该地址在国内被屏蔽,连接超时。 修复方式 :执行一条命令把代理换成国内镜像(永久生效,已写入 Go 环境配置):

bash 复制代码
go env -w GOPROXY=https://goproxy.cn,direct  

goproxy.cn :七牛云维护的国内 Go 模块镜像

,direct :镜像里没有的包再回源直连

以后所有go mod tidy 、go get 都会走国内镜像,不会再出现这个超时错误。go.sum 和 go.mod 也已自动更新并加入了decimal v1.4.0 依赖。

解决办法, 当前项目下设置代理

go env -w GOPROXY=goproxy.cn,direct

当我们成功运行 go mod tidy

当前目录下,会多一个 go sum这样一个文件

这个时候时候第3方包就不会报错了

go 复制代码
package main

import (
	"fmt"

	"github.com/shopspring/decimal"
)

func main() {
	price, err := decimal.NewFromString("136.02")
	if err != nil {
		panic(err)
	}
	fmt.Println(price)
}

安装第3方包的步骤

1、go mod init 项目名称; 表示初始化这个项目

2、在需要的文件中引入第3方的包

go 复制代码
import (
	"fmt"
	"github.com/shopspring/decimal"
)

3、go mod tidy 进行下载依赖,这个时候就会现在这个文件中使用到的第3方的包

4、运行项目

如果运行别人的项目

在运行别人项目的时候,我们看见别人的项目文件是这样的

go 复制代码
package main
import (
	"fmt"
	"github.com/shopspring/decimal"
)
func main() {
	price, err := decimal.NewFromString("136.02")
	if err != nil {
		panic(err)
	}
	fmt.Println(price)
}

由于我们本地没有安装依赖,因此需要执行

go mod init 项目名称; 表示初始化这个项目

然后执行 go mod tidy 进行下载依赖

最后运行项目

相关推荐
专业程序开发源1 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
卷无止境1 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
Thinker QAQ2 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
IT_陈寒2 小时前
JavaScript的闭包陷阱,这个坑我躺了三天才爬出来
前端·人工智能·后端
用户8356290780512 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design2 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express
Mk598783 小时前
让 Agent 长出双手:一个注解搞定工具调用,AgentScope-Java @Tool 实战
后端
小溪学编程3 小时前
将 Bean 放入 Spring 容器中的方式有哪些?
java·后端·spring
Mk598783 小时前
一个 Markdown 文件就是一个员工 —— AgentScope-Java 多智能体编排实战(核心篇)
后端
imDwAaY4 小时前
微信运动每天晚上 10 点推送排行榜,技术上到底有多难?
后端