Maison  >  Article  >  Existe-t-il des packages dépendants en langage Go ?

Existe-t-il des packages dépendants en langage Go ?

小老鼠
小老鼠original
2023-04-17 16:14:551062parcourir

Il existe des packages dépendants dans le langage Go. Les méthodes d'installation des packages dépendants sont : 1. Utilisez la commande « go get » pour installer les packages dépendants ; 2. Activez « go mod », puis utilisez « go get » ; pour le récupérer dans le répertoire du projet. package ; 3. Téléchargez manuellement le package dépendant dans github et placez-le dans le répertoire correspondant ; 4. Copiez le package correspondant sous « GOPATH/pkg/mod » ; projet, puis utilisez "go spice" pour ajuster automatiquement les dépendances du package

Existe-t-il des packages dépendants en langage Go ?

Le système d'exploitation de ce tutoriel : système Windows 10, version go1.20, ordinateur Dell G3

Il existe des packages dépendants. en langage Go

Bien que go en ait de meilleurs maintenant, j'utilise l'outil de gestion de paquets go mod Cependant, pour des raisons indescriptibles, les novices ont encore de nombreux problèmes lors de l'installation des dépendances. Voyons comment les résoudre. get

Existe-t-il des packages dépendants en langage Go ?Dès le premier jour où vous entrez en contact avec les dépendances du package go, votre professeur ou les informations que vous lisez vous le diront : directement go get

. C'est la méthode d'installation la plus originale, qui peut résoudre le problème de dépendance de la plupart des packages

Mais elle n'est pas réussie à 100 % dans l'installation. capture d'écran ci-dessus : golang.org/x/crypto/ssh

Directement aller chercher, l'URL de golang.org peut ne pas être disponible. être accessible pour des raisons indescriptibles. , le package ne peut pas être installé avec succès

2 Configurez GOPROXY

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+,唤出偏好设置,在里面设置代理:

Existe-t-il des packages dépendants en langage Go ?

推荐代理到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 modcode> est nouvellement ajouté dans les fonctionnalités de go 1.11

Donc, tant que la version go est supérieure à 1.11, elle est livrée avec la gestion des packages go mod 🎜C'est une bonne chose, si go mod est activé 🎜

Initialisez go mod dans le projet, code> puis utilisez <code> dans le répertoire du projet. go get utilisera automatiquement go mod pour extraire le package et l'organiser dans le fichier go.mod 🎜

Mais la source par défaut est utilisée. Ils viennent de l'étranger, donc l'installation des packages dépendants est généralement lente ou échoue 🎜

Vous devez donc configurer leur proxy pour laissez-les sortir du serveur domestique, afin que la vitesse et la stabilité soient améliorées. 🎜

Si vous utilisez goland, vous pouvez command+, pour appeler les préférences et y définir le proxy : 🎜

🎜

Recommander le proxy à https://goproxy.cn, Qiniu Yunjia, je l'utilise et il est très stable. 🎜

🎜Après modification, pensez à rouvrir le terminal ! 🎜🎜

Si vous utilisez un autre IDE ou une autre ligne de commande, vous pouvez apprendre à configurer le proxy sur Baidu. 🎜

Après la configuration, utilisez go env pour voir les variables d'environnement actuellement utilisées par go, qui peuvent être utilisées pour vérifier si la configuration est OK. 🎜

🎜3. Utilisez github🎜🎜

Si l'installation ne réussit pas après les deux étapes ci-dessus, vous devez utiliser des moyens anormaux pour installer les dépendances. . 🎜

🎜Situation de référence des packages🎜🎜

Tout d'abord, vous devez comprendre comment les packages locaux sont stockés et comment les référencer. 🎜

  • S'il s'agit d'un package de dépendances traditionnel à télécharger, il sera stocké sous GOPATH/src/domain name/package name.
  • Si vous utilisez go mod, le package de dépendances téléchargé sera stocké sous GOPATH/pkg/mod/domain name/package name@version number.

Vous pouvez donc télécharger manuellement le package et le placer dans le répertoire correspondant. 🎜

🎜Télécharger manuellement le package🎜🎜

Il n'est pas complètement inaccessible à github en Chine, mais il peut être plus lent ou souvent impossible à ouvrir. A ce moment, vous pouvez tenter votre chance. 🎜

Les packages officiels peuvent être trouvés sous cet entrepôt : github.com/golang 🎜

Comment installer sera décrit dans le README.md de chaque package : 🎜

Le moyen le plus simple d'installer est d'exécuter go get -u http://golang.org/x/net. Vous pouvez également cloner manuellement le référentiel dans $GOPATH/src/http://golang. org /x/net.🎜

La plupart des packages dépendants peuvent être trouvés dans github. 🎜

🎜4. Utiliser les connexions 🎜🎜

Suivez l'idée de la solution précédente. Tout le monde ne peut pas surfer sur Internet de manière scientifique. Vous pouvez les rechercher. autour de vous qui peuvent surfer scientifiquement sur Internet. Amis, vous aider à télécharger le package pour vous. 🎜

Copiez ensuite le package correspondant ci-dessous GOPATH/pkg/mod. 🎜

5. Utilisez go mod

Le dernier scénario consiste à connaître le nom du package et à obtenir des exemples de démos via la documentation.

Mettez le code directement dans le projet, puis utilisez go Tidy pour organiser automatiquement les dépendances des packages. go tidy来自动规整包依赖。

一些常识

  • 1、包名就是仓库地址

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

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

  • 2、包里面的包

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

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

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

他就是 golang.org/x/crypto

Un peu de bon sens

1. Le nom du colis est l'adresse de l'entrepôt🎜

Par exemple : github.com/gin-gonic/gin🎜

L'enregistrement est principalement l'adresse de l'entrepôt où se trouve le code, et la plupart des ils sont accessibles directement. 🎜

  • 🎜2. Packages dans des packages 🎜

Il y a parfois une chose très intéressante à propos des packages dépendants. Le package utilisé est le package dans le package. 🎜

C'est peut-être un peu compliqué, mais facile à comprendre. 🎜

Par exemple, le package au début de l'article : golang.org/x/crypto/ssh, 🎜

Il est golang.org/x/cryptoLe package suivant. 🎜🎜Donc, si vous installez le package ssh directement, vous ne pourrez souvent pas trouver le package, vous devez donc l'installer au niveau supérieur. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn