Inhaltsverzeichnis
Problembeschreibung
解决方式
手动下载
设置代理
go mod replace
GOPROXY 环境变量
Manueller Download
Proxy festlegen
go mod ersetzen
GOPROXY-Umgebungsvariable
Heim Backend-Entwicklung Golang Lösen Sie schnell das Problem eines erfolglosen Golang.org/x-Pakets

Lösen Sie schnell das Problem eines erfolglosen Golang.org/x-Pakets

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

Dieser Artikel wurde von der go-SpracheTutorial-Kolumne geschrieben, um Ihnen vorzustellen, wie Sie das Problem mit dem Paketfehler von go get golang.org/x mit einem Klick lösen können. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Ein-Klick-Lösung zum Abrufen des golang.org/x-Paketfehlers

Problembeschreibung

Wenn wir go get, go install, go verwenden mod und andere Befehle, das entsprechende Paket oder abhängige Paket wird automatisch heruntergeladen. Aus bekannten Gründen können Pakete, die <code>golang.org/x/... ähneln, jedoch nicht heruntergeladen werden. Wie unten gezeigt: 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)
Nach dem Login kopieren

解决方式

那我们该如何解决问题呢?毕竟还要制造 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
Nach dem Login kopieren

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

设置代理

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

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port
Nach dem Login kopieren

或者,直接用 all_proxy

export all_proxy=http://proxyAddress:port
Nach dem Login kopieren

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
)
Nach dem Login kopieren

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

GOPROXY 环境变量

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

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

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

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

export GOPROXY=https://goproxy.io
Nach dem Login kopieren

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

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

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

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

$env:GOPROXY = "https://goproxy.io"
Nach dem Login kopieren

最后,我们当然推荐使用 GOPROXYrrreeeLösung

Wie lösen wir das Problem? Schließlich gibt es immer noch Fehler ~

Manueller Download

Unsere gängigen golang.org/x/...-Pakete entsprechen im Allgemeinen offiziellen Spiegel-Repositorys auf GitHub. Beispielsweise entspricht golang.org/x/text github.com/golang/text. Daher können wir das entsprechende GitHub-Repository manuell herunterladen oder in das angegebene Verzeichnis klonen.
rrreee🎜Wenn Sie die Version angeben müssen, gibt es für diese Methode keine Lösung, da die meisten Spiegellager auf GitHub keine Tags haben. Darüber hinaus stellt sich die Frage, wie Programmierer dies manuell tun können, insbesondere weil es zu viele Abhängigkeiten gibt. 🎜

Proxy festlegen

🎜Wenn Sie 🎜einen Proxy haben🎜, können Sie die entsprechende Umgebungsvariable festlegen: 🎜rrreee🎜 Oder verwenden Sie direkt all_proxy: 🎜rrreee

go mod ersetzen

🎜Ab Go Version 1.11 werden go-Module neu unterstützt, um Probleme bei der Paketabhängigkeitsverwaltung zu lösen. Dieses Tool bietet replace, um das Problem der Paketaliase zu lösen. Es kann auch das Problem lösen, dass golang.org/x nicht heruntergeladen werden kann. 🎜🎜go module ist in den nativen Befehl go mod integriert, aber wenn Ihre Codebasis in $GOPATH liegt, module code> Die Funktion ist standardmäßig nicht aktiviert. Sie können sie über eine Umgebungsvariable <code>export GO111MODULE=on aktivieren. 🎜🎜Das Folgende ist ein Referenzbeispiel: 🎜rrreee🎜Ebenso gibt es Paketverwaltungstools von Drittanbietern wie Glide und Gopm, die uns unterschiedliche Lösungen bieten. 🎜

GOPROXY-Umgebungsvariable

🎜Endlich sind wir beim ultimativen Killer dieses Artikels angekommen – 🎜GOPROXY🎜. 🎜🎜Wir wissen, dass ab der Version Go 1.11 das Paketabhängigkeitsverwaltungstool go module offiziell unterstützt wird. 🎜🎜Tatsächlich wurde die Umgebungsvariable GOPROXY hinzugefügt. Wenn diese Variable festgelegt ist, wird der Quellcode über die durch diese Umgebungsvariable festgelegte Proxy-Adresse heruntergeladen, anstatt wie zuvor direkt aus der Codebibliothek herunterzuladen. Dies ist zweifellos die größte gute Nachricht für uns Entwicklungsbürger, die keinen wissenschaftlichen Zugang zum Internet haben. 🎜🎜Noch erfreulicher ist, dass uns das Open-Source-Projekt goproxy.io dabei hilft, das zu erreichen, was wir wollen. Dieses Projekt ermöglicht es Entwicklern, mit einem Klick ihren eigenen GOPROXY-Proxy-Dienst zu erstellen. Gleichzeitig wird auch ein öffentlicher Proxy-Dienst https://goproxy.io bereitgestellt. Wir müssen nur diese Umgebungsvariable festlegen, um das blockierte Quellcodepaket normal herunterzuladen: 🎜rrreee🎜Allerdings 🎜 erfordert Abhängigkeiten in der Funktion go module 🎜. MODULE kann über export GO111MODULE=on aktiviert werden. 🎜🎜Wenn sich das Projekt nicht in GOPATH befindet, können Sie go get... nicht verwenden, aber Sie können go mod... entsprechend verwenden Befehle. 🎜🎜Es kann auch deaktiviert werden, indem diese Umgebungsvariable leer gesetzt wird: export GOPROXY=. 🎜🎜Für Windows-Benutzer können Sie es in PowerShell festlegen: 🎜rrreee🎜Abschließend empfehlen wir auf jeden Fall die Verwendung der Umgebungsvariablenlösung GOPROXY, vorausgesetzt, dass 🎜Go-Version > 1.11🎜. 🎜🎜Schließlich hat Qiniu auch einen inländischen Proxy goproxy.cn eingeführt, um inländischen Benutzern den schnelleren Zugriff auf unzugängliche Pakete zu ermöglichen, was wirklich ein Gewissen ist. 🎜🎜

Das obige ist der detaillierte Inhalt vonLösen Sie schnell das Problem eines erfolglosen Golang.org/x-Pakets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der APK-Teardown der Google-App-Beta enthüllt neue Erweiterungen für den Gemini AI-Assistenten Der APK-Teardown der Google-App-Beta enthüllt neue Erweiterungen für den Gemini AI-Assistenten Jul 30, 2024 pm 01:06 PM

Googles KI-Assistent Gemini dürfte noch leistungsfähiger werden, wenn man den APK-Teardown des neuesten Updates (v15.29.34.29 Beta) in Betracht zieht. Berichten zufolge könnte der neue KI-Assistent des Tech-Giganten mehrere neue Erweiterungen erhalten. Diese Erweiterungen wi

Google Tensor G4 von Pixel 9 Pro XL hinkt Tensor G2 in Genshin Impact Google Tensor G4 von Pixel 9 Pro XL hinkt Tensor G2 in Genshin Impact Aug 24, 2024 am 06:43 AM

Google hat kürzlich auf die Leistungsbedenken bezüglich des Tensor G4 der Pixel-9-Reihe reagiert. Das Unternehmen sagte, dass der SoC nicht darauf ausgelegt sei, Benchmarks zu schlagen. Stattdessen konzentrierte sich das Team darauf, dass es in den Bereichen, in denen Google das c wünscht, eine gute Leistung erbringt

Google Pixel 9 Pro XL wird im Desktop-Modus getestet Google Pixel 9 Pro XL wird im Desktop-Modus getestet Aug 29, 2024 pm 01:09 PM

Google hat den DisplayPort Alternate Mode mit der Pixel-8-Serie eingeführt und ist auch in der neu eingeführten Pixel-9-Reihe vorhanden. Während es hauptsächlich dazu dient, das Smartphone-Display mit einem angeschlossenen Bildschirm zu spiegeln, können Sie es auch für den Desktop verwenden

Google Pixel 9-Smartphones werden trotz siebenjähriger Update-Verpflichtung nicht mit Android 15 auf den Markt kommen Google Pixel 9-Smartphones werden trotz siebenjähriger Update-Verpflichtung nicht mit Android 15 auf den Markt kommen Aug 01, 2024 pm 02:56 PM

Die Pixel-9-Serie ist fast da, die Veröffentlichung ist für den 13. August geplant. Jüngsten Gerüchten zufolge werden Pixel 9, Pixel 9 Pro und Pixel 9 Pro XL das Pixel 8 und Pixel 8 Pro (aktuell 749 US-Dollar bei Amazon) widerspiegeln und mit 128 GB Speicher beginnen.

Der neue Google Pixel-Desktopmodus wird in einem neuen Video als mögliche Alternative zu Motorola Ready For und Samsung DeX vorgestellt Der neue Google Pixel-Desktopmodus wird in einem neuen Video als mögliche Alternative zu Motorola Ready For und Samsung DeX vorgestellt Aug 08, 2024 pm 03:05 PM

Es sind einige Monate vergangen, seit Android Authority einen neuen Android-Desktop-Modus vorgestellt hat, den Google in Android 14 QPR3 Beta 2.1 versteckt hat. Wir kommen direkt auf den Fersen, als Google die DisplayPort-Alt-Modus-Unterstützung für Pixel 8 und Pixel 8 hinzufügt

Google öffnet AI Test Kitchen & Imagen 3 für die meisten Nutzer Google öffnet AI Test Kitchen & Imagen 3 für die meisten Nutzer Sep 12, 2024 pm 12:17 PM

Die AI Test Kitchen von Google, die eine Suite von KI-Designtools zum Spielen enthält, ist mittlerweile für Nutzer in weit über 100 Ländern weltweit geöffnet. Dieser Schritt markiert das erste Mal, dass viele Menschen auf der ganzen Welt Imagen 3, Googl, nutzen können

Gerüchten zufolge soll Googles neuer Chromecast „TV Streamer' mit Ethernet- und Thread-Konnektivität auf den Markt kommen Gerüchten zufolge soll Googles neuer Chromecast „TV Streamer' mit Ethernet- und Thread-Konnektivität auf den Markt kommen Aug 01, 2024 am 10:21 AM

Google ist ungefähr zwei Wochen davon entfernt, neue Hardware vollständig zu enthüllen. Wie üblich haben unzählige Quellen Details zu neuen Pixel-Geräten durchgesickert, sei es die Smartphones Pixel Watch 3, Pixel Buds Pro 2 oder Pixel 9. Es scheint auch, dass das Unternehmen

Google Pixel 9 Pro XL belegt den 2. Platz im „globalen' Smartphone-Kamera-Ranking von DxOMark Google Pixel 9 Pro XL belegt den 2. Platz im „globalen' Smartphone-Kamera-Ranking von DxOMark Aug 23, 2024 am 06:42 AM

Googles neue Pixel-9-Serie hat eine neue Variante eingeführt, die es in früheren Modellreihen nicht gab: das Pixel 9 Pro XL. Es ist im Wesentlichen identisch mit der Nicht-XL-Variante (bei Amazon vorbestellen), verfügt aber, wie der Name schon sagt, über einen größeren Bildschirm. Die beiden e

See all articles