golang中包无法引入问题解决

作者:dkjhl 时间:2023-09-03 12:34:58 

前言

刚接触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即可

来源:https://blog.csdn.net/dkjhl/article/details/129519738

标签:golang,包,引入
0
投稿

猜你喜欢

  • 一文教你利用Python画花样图

    2023-09-01 20:26:42
  • SQL2005查看死锁存储过程sp_who_lock

    2024-01-12 20:34:13
  • python中字符串比较使用is、==和cmp()总结

    2022-10-11 01:55:35
  • HTML语言将加入硬件操作功能

    2009-12-16 19:19:00
  • SQL触发器实例讲解

    2012-04-13 11:52:48
  • Python3爬虫中关于Ajax分析方法的总结

    2021-04-07 17:28:47
  • Python prettytable模块应用详解

    2022-05-11 13:10:15
  • 利用Python将多张图片合成视频的实现

    2022-09-16 07:10:26
  • 关注前端开发流程

    2009-12-31 17:38:00
  • Pytorch 使用tensor特定条件判断索引

    2023-01-18 16:30:23
  • Python中GIL的使用详解

    2022-02-08 13:36:30
  • Python常用扩展插件使用教程解析

    2021-12-22 03:00:47
  • python实现MD5进行文件去重的示例代码

    2021-12-13 02:28:23
  • 超详细注释之OpenCV更改像素与修改图像通道

    2021-07-01 17:42:45
  • Python机器学习实战之k-近邻算法的实现

    2022-02-06 03:02:09
  • MySQL表类型 存储引擎 的选择

    2024-01-22 08:12:51
  • React开发进阶redux saga使用原理详解

    2023-08-06 09:08:33
  • Oracle 安装和卸载问题收集(集合篇)第1/6页

    2024-01-22 02:31:33
  • python 快速排序代码

    2022-04-15 00:00:21
  • PHP基于phpqrcode类库生成二维码过程解析

    2023-11-17 19:06:35
  • asp之家 网络编程 m.aspxhome.com