时间:2023-03-17来源:系统城装机大师作者:佚名
刚接触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时引入的模块的特定的版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 | go env -w GO111MODULE=on |
GO111MODULE开启和关闭对Go的包无论是导入,还是下载使用,都有着非常大的区别,老版本可以说就没有包管理器,无法实现类似npm install或者pip install -r requirements这样的自动导入所有需要的包。并且go项目也被限制在了go的PATH文件夹中,导入也需要写较长的路径,十分不方便。GO111MODULE的出现就是用来解决上述所有的问题。
查询了一下当前环境的GOPROXY地址:
1 2 |
go env GOPROXY > http: //另一个网段网络:端口/仓库地址/,direct |
执行命令:
1 | go env -w GOPROXY=http: //另一个网段网络:端口/仓库地址/,direct |
重新执行命令go mod tidy,完美通过!
切换另一个环境时,原来环境变量的GOPROXY被删除了,导致引入的程序无法下载对应的包,所以重新设置GOPROXY即可
到此这篇关于golang中包无法引入问题解决的文章就介绍到这了
2024-07-16
如何使用 Go 依赖库管理器修复损坏的依赖项?2024-07-07
Java框架如何简化代码的调试过程2023-03-17
Python 使用tf-idf算法计算文档关键字权重并生成词云的方法有这么一段代码,可以先看一下有没有什么问题,作用是输入一段json字符串,反序列化成map,然后将另一个inputMap的内容,merge进这个map 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
2023-03-15
由于数据库的类型为Data 类型,所以插入数据库的时候我先把前端传入的string类型的时间转为Time 再插入。 Go 提供了两种插入的方式,即time.Parse 和 time.ParseInLocation 。两种方式,他们的差异比较大。...
2023-03-09