Go语言中有依赖的包吗

2023-04-17 深圳推广 技术文档

Go语言中有依赖的包,其安装依赖包的方法有∶1、使用“go get”命令安装依赖包;2、开启“go mod”,然后在工程目录下使用"“go get"拉包;3、在github中手动下载依赖包并放到对应的目录;4、拷贝“GOPATH/pkg/mod”下对应的包;5、直接把代码放到工程里面,然后使用“go tidy”自动规整包依赖即可。

本教程操作系统:Windows10系统、go1.20版、Dell G3电脑.

Go语言中有依赖的包。

虽然go现在已经有比较好用的go mod包管理工具了。但是由于某些不可描述的原因,在安装依赖时对于新手依旧会有很多问题,一起来看看怎么解决吧?

一、直接go get

从第一天接触go的包依赖开始,你的老师或者看到的资料都是告诉你:直接go get

这是最原始的安装方式,能解决大部分包的依赖问题。

但不是100% 都能安装成功,比如上面截图里面的包:golang.org/x/crypto/ssh

直接go get,可能会因为不可描述的原因无法访问到golang.org这个网址,包就无法安装成功。

二、配置 GOPROXY

go mod是go 1.11 新加的特性。

所以只要go版本大于 1.11,就自带了go mod包管理。

这是一个好东西,如果开启了go mod

项目里面初始化了go mod,再在工程目录下面使用go get拉包会自动使用go mod拉包,并整理到go.mod文件里。

但是默认使用的源是国外的,所以安装依赖包一般都很慢,或者不能成功。

所以需要设置下他们的代理,让他们从国内的服务器出去,这样速度和稳定性都能更好些。

如果使用的是goland可以command+,唤出偏好设置,在里面设置代理:

推荐代理到https://goproxy.cn这个上,七牛云家的,一直使用,很稳定。

修改好后,记得重新开终端!

如果使用的是其他IDE或者命令行,自行百度怎么设置代理。

设置完成后使用go env能看到当前go使用到的环境变量,可以用来检查配置是否OK。

三、使用github

如果上面两步操作后都还不能安装成功,就得使用非正常手段来安装依赖了。

包的引用情况

首先需要理解go本地的包是怎么存放,怎么引用的。

  • 如果是传统的go get下载的依赖包会存放在GOPATH/src/域名/包名 下面。
  • 如果是使用的go mod下载的依赖包会存放在GOPATH/pkg/mod/域名/包名@版本号 下面。

所以可以把包手动下载放到对应的目录下面即可。

手动下载包

对于github国内并不是完全不能访问,只是可能会比较慢,或者时常打不开,此时可以碰碰运气。

官方包都可以在这个仓库下面找到:github.com/golang

如何安装在每个包的README.md里面都会有描述:

The easiest way to install is to run go get -u http://golang.org/x/net. You can also manually git clone the repository to $GOPATH/src/http://golang.org/x/net.

大部分的依赖包都能在github里面找到对应包。

四、利用人脉

沿用上一种方案的思路,不是所有人都不能科学上网,可以寻求身边能科学上网的朋友,帮你下载包给你。

然后把GOPATH/pkg/mod下面对应的包拷贝。

五、使用go mod

最后还有一种场景,那就是知道包名字,通过文档拿到一些范例demo。

直接把代码放到工程里面,然后使用go tidy来自动规整包依赖。

一些常识

  • 1、包名就是仓库地址

比如:github.com/gin-gonic/gin

报名大都是代码所在仓库地址,大都是可以直接访问的。

  • 2、包里面的包

依赖包有一个非常好玩的地方,有时使用的包是包里面的包。

可能有点绕,但是很好理解。

比如文章开头的:golang.org/x/crypto/ssh这个包,

他就是 golang.org/x/crypto下面的包。

所以直接安装ssh包,往往会出现找不到包的情况,所以你就需要往上一级安装。

以上就是Go语言中有依赖的包吗的详细内容,更多请关注深圳推广其它相关文章!

相关推荐://
  • 数组赋值方式有哪些c语言
    hover

    数组赋值方式有哪些c语言

    c 语言中数组赋值方式有六种:1. 直接赋值;2. 使用数组初始化器;3. 使用指针;4. 使用循环;5. 使用 memcpy() 函数;6. 使用 scanf() 函数。 C 语言数组赋值方式 在 C 语言中,数组是一种数据结构,它用于存储同一类型数据的集合。···

    2024-05-10
  • 浏览器插件是什么语言写的
    hover

    浏览器插件是什么语言写的

    浏览器插件通常使用以下语言编写:前端语言:javascript、html、css后端语言:c++、rust、webassembly其他语言:python、java 浏览器插件是什么语言写的? 浏览器插件(也称为扩展程序)通常使用以下语言编写: 前端语言: JavaScri···

    2024-05-10
  • ruby语言的特点有哪些
    hover

    ruby语言的特点有哪些

    ruby 语言的特点:易于学习,具有接近英语的简洁语法。面向对象,以对象方式组织数据和代码。动态类型化,允许变量在运行时更改数据类型。具有元编程功能,使程序员能够操作代码本身。支持块和闭包,提供强大的代码重用和可扩展性。···

    2024-04-10
  • pascal语言还有人用吗
    hover

    pascal语言还有人用吗

    尽管过去曾广泛流行,但 pascal 目前已被认为过时,主要使用于教育和爱好项目。虽然它易于学习且模块化,但它缺乏现代功能,且就业市场有限。 Pascal 语言是否仍在使用? Pascal 是一种历史悠久的编程语言,由尼克劳斯·威尔特于 197···

    2024-04-10
  • ruby语言用来干什么
    hover

    ruby语言用来干什么

    ruby 是一种面向对象的编程语言,广泛用于 web 开发(例如 rails 框架)、脚本和自动化、数据分析和科学计算、移动应用开发以及其他用途,包括游戏开发、机器学习和自然语言处理。 Ruby 语言的用途 Ruby 是一种面向对象的编程语言,···

    2024-04-10
  • ruby语言的应用领域
    hover

    ruby语言的应用领域

    ruby语言广泛应用于以下领域:web开发:ruby on rails、sinatra、padrino移动开发:rubymotion、jruby数据科学和机器学习:sciruby、tensorflow、keras系统管理:chef、puppet、ansible、saltstack桌面应用程序:qt、rubycocoa、ffi···

    2024-04-10
  • pascal语言是高级语言吗
    hover

    pascal语言是高级语言吗

    是的,pascal是一种高级语言。其原因在于:1. 易于理解;2. 机器无关性;3. 数据抽象;4. 结构化编程。pascal具备这些高级语言特征,因而被认为是一种高级语言。 Pascal语言是高级语言吗? 回答:是的,Pascal是一种高级语言。 原因···

    2024-04-09
  • pascal语言属于什么语言
    hover

    pascal语言属于什么语言

    pascal语言属于高级编程语言,它具有易于学习、结构化编程、类型化语言和广泛的应用程序等优点。 Pascal语言属于哪类语言? Pascal语言属于高级编程语言。 详细解释: 高级编程语言是一种接近人类语言的高级抽象形式,旨在易于理解···

    2024-04-09
在线客服 13691917840 提交需求 二维码