golang中包无法引入问题解决

 更新时间:2023年03月16日 10:17:16   作者:dkjhl  
本文主要介绍了golang中包无法引入问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

刚接触golang不久,有些环境无法融会贯通,现在针对开发过程中遇到的问题做个排查记录

问题背景

开发环境区分不同网段,同一个程序引入到另一个环境后,对应的包无法下载

问题现象

程序导入另一个环境后,初始化操作就是下载包:执行go mod tidy后,出现下面错误

go: github.com/Sirupsen/logrus@v1.0.1: Get " https://proxy.golang.org/github.com/Sirupsen/logrus/@v/v1.0.1.mod": dial tcp: lookup proxy.golang.org : no such host

或者出现以下错误

go: github.com/Sirupsen/logrus@v1.0.1: Get " https://proxy.golang.org/github.com/Sirupsen/logrus/@v/v1.0.1.mod": dial tcp: lookup proxy.golang.org : getaddrinfow: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server

查看go.mod后,发现很多报红,无法下载对应的版本包,查阅相关资料,对go.mod有了一个深入了解

go.mod文件定义module路径以及列出其他需要在build时引入的模块的特定的版本。

module go_start
 
go 1.18
 
require (
    github.com/fsnotify/fsnotify v1.6.0
    github.com/gin-gonic/gin v1.8.1
    github.com/go-sql-driver/mysql v1.6.0
    github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
    github.com/shirou/gopsutil v2.21.11+incompatible
    github.com/spf13/viper v1.14.0
    github.com/valyala/fasthttp v1.40.0
    github.com/vkcom/engine-go v0.0.0-20181122144534-e2cc962e10cc
    github.com/wxnacy/wgo v1.0.4
    go.uber.org/zap v1.23.0
    gopkg.in/yaml.v3 v3.0.1
)

如上go.mod文件:声明go_start路径作为module的根目录;go的运行版本为1.18;同时也声明了module依赖特定版本的github.com/fsnotify/fsnotify v1.6.0和github.com/gin-gonic/gin v1.8.1等等

问题解决

根据报错,尝试举措如下

1、强制开启GO111MODULE

go env -w GO111MODULE=on

GO111MODULE开启和关闭对Go的包无论是导入,还是下载使用,都有着非常大的区别,老版本可以说就没有包管理器,无法实现类似npm install或者pip install -r requirements这样的自动导入所有需要的包。并且go项目也被限制在了go的PATH文件夹中,导入也需要写较长的路径,十分不方便。GO111MODULE的出现就是用来解决上述所有的问题。

2、切换代理

查询了一下当前环境的GOPROXY地址:

go env GOPROXY
> http://另一个网段网络:端口/仓库地址/,direct

执行命令:

go env -w GOPROXY=http://另一个网段网络:端口/仓库地址/,direct

重新执行命令go mod tidy,完美通过!

问题总结

切换另一个环境时,原来环境变量的GOPROXY被删除了,导致引入的程序无法下载对应的包,所以重新设置GOPROXY即可

到此这篇关于golang中包无法引入问题解决的文章就介绍到这了,更多相关golang 包无法引入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Golang中strconv库的用法

    详解Golang中strconv库的用法

    strconv包提供了字符串和基本数据类型之间的相互转换功能,本文将带大家深入了解Go语言标准库中的strconv包,掌握其常用的函数和用法,希望对大家有所帮助
    2023-06-06
  • Go语言中的内存布局详解

    Go语言中的内存布局详解

    这篇文章主要给大家介绍了Go语言中的内存布局,那么本文中将尝试解释Go如何在内存中构建结构体,以及结构体在字节和比特位方面是什么样子。 有需要的朋友们可以参考借鉴,感兴趣的朋友们下面来跟着小编一起学习学习吧。
    2016-11-11
  • golang中如何保证精度的方法

    golang中如何保证精度的方法

    本文主要介绍了golang中如何保证精度的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Go语言调用ffmpeg-api实现音频重采样

    Go语言调用ffmpeg-api实现音频重采样

    最近对golang处理音视频很感兴趣,对golang音视频常用库goav进行了一番研究。自己写了一个wav转采样率的功能。给大家分享一下,中间遇到了不少坑,解决的过程中还是蛮有意思的,希望大家能喜欢
    2022-12-12
  • golang使用net/rpc库实现rpc

    golang使用net/rpc库实现rpc

    这篇文章主要为大家详细介绍了golang如何使用net/rpc库实现rpc,文章的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
    2024-01-01
  • GO语言类型查询类型断言示例解析

    GO语言类型查询类型断言示例解析

    这篇文章主要为大家介绍了GO语言类型判断及类型断言,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Go语言程序开发gRPC服务

    Go语言程序开发gRPC服务

    这篇文章主要为大家介绍了Go语言程序开发gRPC服务,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 浅析golang github.com/spf13/cast 库识别不了自定义数据类型

    浅析golang github.com/spf13/cast 库识别不了自定义数据类型

    这篇文章主要介绍了golang github.com/spf13/cast库识别不了自定义数据类型,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 通过函数如何将golang float64 保留2位小数(方法汇总)

    通过函数如何将golang float64 保留2位小数(方法汇总)

    这篇文章主要介绍了通过函数将golang float64保留2位小数,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 深入了解Golang网络编程Net包的使用

    深入了解Golang网络编程Net包的使用

    net包主要是增加 context 控制,封装了一些不同的连接类型以及DNS 查找等等,同时在有需要的地方引入 goroutine 提高处理效率。本文主要和大家分享下在Go中网络编程的实现,需要的可以参考一下
    2022-07-07

最新评论