Table des matières
Description du problème
解决方式
手动下载
设置代理
go mod replace
GOPROXY 环境变量
Téléchargement manuel
Définir le proxy
Variable d'environnement GOPROXY
Maison développement back-end Golang Résolvez rapidement le problème de l'échec du package Go Lang.org/x.

Résolvez rapidement le problème de l'échec du package Go Lang.org/x.

Dec 02, 2021 pm 02:42 PM
get golang google

Cet article est écrit par la colonne tutoriel go language pour vous présenter comment résoudre le problème d'échec du package go get golang.org/x en un seul clic. J'espère qu'il sera utile aux amis dans le besoin !

Solution en un clic pour récupérer l'échec du package golang.org/x

Description du problème

Lorsque nous utilisons go get, go install, go mod et d'autres commandes, le package correspondant ou le package dépendant sera automatiquement téléchargé. Cependant, pour des raisons bien connues, les packages similaires à <code>golang.org/x/... ne pourront pas être téléchargés. Comme indiqué ci-dessous : go getgo installgo mod 等命令时,会自动下载相应的包或依赖包。但由于众所周知的原因,类似于 golang.org/x/... 的包会出现下载失败的情况。如下所示:

$ go get -u golang.org/x/sys

go get golang.org/x/sys: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
Copier après la connexion

解决方式

那我们该如何解决问题呢?毕竟还要制造 bug 的嘛~

手动下载

我们常见的 golang.org/x/... 包,一般在 GitHub 上都有官方的镜像仓库对应。比如 golang.org/x/text 对应 github.com/golang/text。所以,我们可以手动下载或 clone 对应的 GitHub 仓库到指定的目录下。

mkdir $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone git@github.com:golang/text.git
rm -rf text/.git
Copier après la connexion

当如果需要指定版本的时候,该方法就无解了,因为 GitHub 上的镜像仓库多数都没有 tag。并且,手动嘛,程序员怎么能干呢,尤其是依赖的依赖,太多了。

设置代理

如果你有代理,那么可以设置对应的环境变量:

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port
Copier après la connexion

或者,直接用 all_proxy

export all_proxy=http://proxyAddress:port
Copier après la connexion

go mod replace

从 Go 1.11 版本开始,新增支持了 go modules 用于解决包依赖管理问题。该工具提供了 replace,就是为了解决包的别名问题,也能替我们解决 golang.org/x 无法下载的的问题。

go module 被集成到原生的 go mod 命令中,但是如果你的代码库在 $GOPATH 中,module 功能是默认不会开启的,想要开启也非常简单,通过一个环境变量即可开启 export GO111MODULE=on

以下为参考示例:

module example.com/hello

require (
    golang.org/x/text v0.3.0
)

replace (
    golang.org/x/text => github.com/golang/text v0.3.0
)
Copier après la connexion

类似的还有 glide、gopm 等这类第三方包管理工具,都不同方式的解决方案提供给我们。

GOPROXY 环境变量

终于到了本文的终极大杀器 —— GOPROXY

我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。

其实还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。

更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载被墙的源码包了:

export GOPROXY=https://goproxy.io
Copier après la connexion

不过,需要依赖于 go module 功能。可通过 export GO111MODULE=on 开启 MODULE。

如果项目不在 GOPATH 中,则无法使用 go get ...,但可以使用 go mod ... 相关命令。

也可以通过置空这个环境变量来关闭,export GOPROXY=

对于 Windows 用户,可以在 PowerShell 中设置:

$env:GOPROXY = "https://goproxy.io"
Copier après la connexion

最后,我们当然推荐使用 GOPROXYrrreeeSolution

Alors, comment pouvons-nous résoudre le problème ? Après tout, il y a encore des bugs ~

Téléchargement manuel

Nos packages golang.org/x/... courants ont généralement des référentiels miroir officiels sur GitHub. Par exemple, golang.org/x/text correspond à github.com/golang/text. Par conséquent, nous pouvons télécharger ou cloner manuellement le référentiel GitHub correspondant dans le répertoire spécifié.
rrreee🎜Lorsque vous devez spécifier la version, cette méthode n'a pas de solution, car la plupart des entrepôts miroirs sur GitHub n'ont pas de balises. De plus, comment les programmeurs peuvent-ils le faire manuellement, notamment parce qu'il y a trop de dépendances. 🎜

Définir le proxy

🎜Si vous 🎜avez un proxy🎜, vous pouvez définir la variable d'environnement correspondante : 🎜rrreee🎜 Ou, utilisez directement all_proxy : 🎜rrreee

go mod replace

🎜À partir de la version 1.11 de Go, les go modules sont nouvellement pris en charge pour résoudre les problèmes de gestion des dépendances des packages. Cet outil fournit replace pour résoudre le problème des alias de package. Il peut également résoudre le problème de l'impossibilité de télécharger golang.org/x. 🎜🎜go module est intégré à la commande native go mod, mais si votre base de code est en $GOPATH, module code> La fonction n'est pas activée par défaut. Il est très simple de l'activer. Vous pouvez l'activer via une variable d'environnement <code>export GO111MODULE=on. 🎜🎜Ce qui suit est un exemple de référence : 🎜rrreee🎜De même, il existe des outils de gestion de packages tiers tels que glide et gopm, qui nous offrent différentes solutions. 🎜

Variable d'environnement GOPROXY

🎜Enfin, nous avons atteint le tueur ultime de cet article - 🎜GOPROXY🎜. 🎜🎜Nous savons qu'à partir de la version Go 1.11, l'outil de gestion des dépendances des packages go module est officiellement pris en charge. 🎜🎜En fait, la variable d'environnement GOPROXY a également été ajoutée. Si cette variable est définie, le code source sera téléchargé via l'adresse proxy définie par cette variable d'environnement, au lieu d'être téléchargé directement depuis la bibliothèque de codes comme auparavant. C’est sans aucun doute la plus grande bonne nouvelle pour les développeurs comme nous qui ne peuvent pas accéder scientifiquement à Internet. 🎜🎜Ce qui est encore plus gratifiant, c'est que le projet open source goproxy.io nous aide à réaliser ce que nous voulons. Ce projet permet aux développeurs de créer leur propre service proxy GOPROXY en un seul clic. Dans le même temps, un service proxy public https://goproxy.io est également fourni. Il suffit de définir cette variable d'environnement pour télécharger normalement le package de code source bloqué : 🎜rrreee🎜Cependant, 🎜 nécessite des dépendances Dans la fonction go module 🎜. MODULE peut être activé via export GO111MODULE=on. 🎜🎜Si le projet n'est pas dans GOPATH, vous ne pouvez pas utiliser go get..., mais vous pouvez utiliser go mod... associé commandes. 🎜🎜Il peut également être désactivé en définissant cette variable d'environnement vide, export GOPROXY=. 🎜🎜Pour les utilisateurs Windows, vous pouvez le configurer dans PowerShell : 🎜rrreee🎜Enfin, nous recommandons certainement d'utiliser la solution de variable d'environnement GOPROXY, à condition que 🎜Go version > 1.11🎜. 🎜🎜Enfin, Qiniu a également lancé un proxy national goproxy.cn pour permettre aux utilisateurs nationaux d'accéder plus rapidement aux packages inaccessibles, ce qui est vraiment une conscience. 🎜🎜

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Google Pixel 9 Pro XL est testé avec le mode bureau Google Pixel 9 Pro XL est testé avec le mode bureau Aug 29, 2024 pm 01:09 PM

Google a introduit le mode alternatif DisplayPort avec la série Pixel 8, et il est présent sur la gamme Pixel 9 récemment lancée. Bien qu'il soit principalement là pour vous permettre de refléter l'affichage de votre smartphone avec un écran connecté, vous pouvez également l'utiliser pour un ordinateur de bureau.

Google Tensor G4 du Pixel 9 Pro XL est en retard sur Tensor G2 en Genshin Impact Google Tensor G4 du Pixel 9 Pro XL est en retard sur Tensor G2 en Genshin Impact Aug 24, 2024 am 06:43 AM

Google a récemment répondu aux problèmes de performances concernant le Tensor G4 de la gamme Pixel 9. La société a déclaré que le SoC n'était pas conçu pour battre les benchmarks. Au lieu de cela, l'équipe s'est concentrée sur sa performance dans les domaines où Google souhaite que le c

Google ouvre AI Test Kitchen & Imagen 3 à la plupart des utilisateurs Google ouvre AI Test Kitchen & Imagen 3 à la plupart des utilisateurs Sep 12, 2024 pm 12:17 PM

AI Test Kitchen de Google, qui comprend une suite d'outils de conception d'IA avec lesquels les utilisateurs peuvent jouer, est désormais ouvert aux utilisateurs dans plus de 100 pays à travers le monde. Cette décision marque la première fois que de nombreuses personnes dans le monde pourront utiliser Imagen 3, Google

La comparaison des caméras Pixel 9 Pro XL et iPhone 15 Pro Max révèle des victoires surprenantes de Google en termes de performances vidéo et de zoom La comparaison des caméras Pixel 9 Pro XL et iPhone 15 Pro Max révèle des victoires surprenantes de Google en termes de performances vidéo et de zoom Aug 24, 2024 pm 12:32 PM

Les Google Pixel 9 Pro et Pro XL sont les réponses de Google aux Samsung Galaxy S24 Ultra et aux Apple iPhone 15 Pro et Pro Max. Daniel Sin sur YouTube (regarder ci-dessous) a comparé le Google Pixel 9 Pro XL à l'iPhone 15 Pro Max avec certains

Google confirme l'incompatibilité du Pixel 9 Pro Fold avec les accessoires de chargement sans fil officiels grâce à un design curieux Google confirme l'incompatibilité du Pixel 9 Pro Fold avec les accessoires de chargement sans fil officiels grâce à un design curieux Sep 01, 2024 am 06:31 AM

Le Pixel 9 Pro Fold s’apparente à une volte-face pour la division pliable naissante de Google. En fait, les différences entre le Pixel 9 Pro Fold et le Pixel Fold sont telles que le premier a été davantage comparé au OnePlus Open (1 399,99 $ sur A

Google Pixel 9 Pro XL se classe 2e dans le classement « mondial » des appareils photo pour smartphone de DxOMark Google Pixel 9 Pro XL se classe 2e dans le classement « mondial » des appareils photo pour smartphone de DxOMark Aug 23, 2024 am 06:42 AM

La nouvelle série Pixel 9 de Google a introduit une nouvelle variante qui n'était pas présente dans les gammes précédentes, le Pixel 9 Pro XL. Il est essentiellement identique à la variante non XL (précommande sur Amazon), mais comme son nom l'indique, il dispose d'un écran plus grand. Les deux e

Les premières images du Google Pixel 9a montrent une refonte complète avec une version beaucoup plus antérieure également selon les rumeurs Les premières images du Google Pixel 9a montrent une refonte complète avec une version beaucoup plus antérieure également selon les rumeurs Aug 27, 2024 am 06:35 AM

Presque aucun temps ne s'est écoulé depuis que Google a annoncé ses premiers smartphones de la série Pixel 9. En fait, il vient tout juste de commencer à expédier les Pixel 9, Pixel 9 Pro et Pixel 9 Pro XL (1 099 $ sur Amazon). En revanche, les précommandes du Pixel 9 Pro Fold ne seront pas disponibles.

Google répond aux scores de référence médiocres du Tensor G4 dans la gamme Pixel 9 Google répond aux scores de référence médiocres du Tensor G4 dans la gamme Pixel 9 Aug 20, 2024 pm 09:49 PM

Dès le départ, la série Google Pixel n’a jamais eu pour objectif de battre les concurrents les plus performants en termes de performances. Le cas de la gamme Google Pixel 9 n'est pas très différent, car les premiers résultats de référence montrent que le Tensor G4 est tout à fait à la hauteur.

See all articles