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
猜你喜欢
- 问题:mybatis返回的null类型数据消失,导致前端展示出错思路:如果查询出的结果是空值,应当转换成空字符串。当然在前端也能进行判断,但
- 1、配置安装源# 安装dnf install http://mirrors.ustc.edu.cn/mysql-repo/mysql80-c
- ADODB.Stream在ASP编程中往往用于无组件上传,并且可以指定文件编码,可以应对各种不同的需要。但是在使用ADODB.Stream过
- 误区 #2: DBCC CHECKDB会引起阻塞,因为这个命令默认会加锁这是错误的! 在SQL Serv
- 本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考。具体方法如下:先来看看如下代码:#!/usr/bin/python #
- 一、多线程间的资源竞争以下列task1(),task2()两个函数为例,分别将对全局变量num加一重复一千万次循环(数据大一些,太小的话执行
- 尽管Python提供了多个消息框已经能够满足大部分正常人的需求,但并不够灵活,所以有的时候不得不自定义消息框。新建窗口消息框的本质是一个窗口
- 在phpcms\modules\wap\index.php里面,搜索下面这句if(!$r || $r['status'] !
- 这篇文章主要介绍了pyinstaller还原python代码过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 一、安装matplotlib1)由于已安装anaconda,可直接打开anaconda prompt,再用命令pip install mat
- 当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取:import pandas as pdf = open('E:/学习
- 概述为什么使用集合运算:在集合运算中比联接查询和EXISTS/NOT EXISTS更方便。并集运算(UNION)并集:两个集合的并集是一个包
- HTML5 越来越引起人们的关注,苹果甚至将 HTML5 视为 Flash 的掘墓人 。然而,作为一种尚未成型的技术,HTML5 对很多人来
- Python包导入报错的问题首先,一般来说,写一个小demo可能一个文件就够了,但是要是做一个小项目,可能需要拆分成很多零散的文件,放在不同
- 本文实例为大家分享了opencv转换颜色空间更改图片背景的具体代码,供大家参考,具体内容如下思路:1、将BGR转换为HSV颜色空间 2、设置
- 我就废话不多说了,大家还是直接看代码吧!import pandas as pddef get_under_rolling(df,window
- 首先如果柱状图中有中文,比如X轴和Y轴标签需要写中文,解决中文无法识别和乱码的情况,加下面这行代码就可以解决了:plt.rcParams[&
- 概 述 ---- 现在有不少介绍利用ASP实现动态分页的文章,方法大同小异,就是每次利用ADO返回原始
- 前言自动帮助记录每次文件的改动,同时协作永工作学习git命令是充分必要的集中式和分布式分布式每个人电脑都是一个完整的版本库,也有类似中央服务
- 装饰器对与Python新手以至于熟悉Python的人都是一个难理解, 难写的东西. 那么今天就分享一下我对Python 装饰器的理解所谓装饰