Heim  >  Artikel  >  Gibt es abhängige Pakete in der Go-Sprache?

Gibt es abhängige Pakete in der Go-Sprache?

小老鼠
小老鼠Original
2023-04-17 16:14:551049Durchsuche

Es gibt abhängige Pakete in der Go-Sprache. Die Methoden zum Installieren abhängiger Pakete sind: 1. Verwenden Sie den Befehl „go get“, um die abhängigen Pakete zu installieren. 2. Aktivieren Sie „go mod“ und verwenden Sie dann „go get“. um es in das Projektverzeichnis zu ziehen. 3. Laden Sie das abhängige Paket manuell in das entsprechende Verzeichnis herunter. 4. Kopieren Sie das entsprechende Paket unter „GOPATH/pkg/mod“. Projekt und verwenden Sie dann „Go Tidy“, um die Paketabhängigkeiten automatisch anzupassen.

Gibt es abhängige Pakete in der Go-Sprache?

Das Betriebssystem dieses Tutorials: Windows 10-System, go1.20-Version, Dell G3-Computer in der Go-Sprache

Obwohl es in Go jetzt bessere gibt, habe ich aus unbeschreiblichen Gründen immer noch viele Probleme bei der Installation von Abhängigkeiten. 1. Direktes Go get

Vom ersten Tag an, an dem Sie mit den Paketabhängigkeiten von go in Kontakt kommen, wird Ihnen Ihr Lehrer oder die von Ihnen gelesenen Informationen sagen: direkt go get

. Dies ist die originellste Installationsmethode, die das Abhängigkeitsproblem der meisten Pakete lösen kann

Bei der Installation ist sie jedoch nicht zu 100 % erfolgreich Screenshot oben: golang.org/x/crypto/ssh Gibt es abhängige Pakete in der Go-Sprache?

Direkt go get, möglicherweise nicht aus unbeschreiblichen Gründen nicht zugänglich sein, kann das Paket nicht erfolgreich installiert werden

2. Konfigurieren Sie GOPROXY

go modcode> wurde in go 1.11 neu hinzugefügt. Funktionen

Solange die go-Version älter als 1.11 ist, wird sie mit der Paketverwaltung go mod geliefert

Das ist eine gute Sache, wenn go mod aktiviert ist 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+,唤出偏好设置,在里面设置代理:

Gibt es abhängige Pakete in der Go-Sprache?

推荐代理到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 im Projekt initialisieren code> und dann <code> im Projektverzeichnis verwenden, wird automatisch <code>go mod verwendet, um das Paket abzurufen und in der Datei go.mod zu organisieren

Aber es wird die Standardquelle verwendet, daher ist die Installation abhängiger Pakete normalerweise langsam oder erfolglos 🎜

Sie müssen also ihren Proxy einrichten Lassen Sie sie vom heimischen Server ausgehen, damit die Geschwindigkeit und Stabilität verbessert werden könnte. 🎜

Wenn Sie Goland verwenden, können Sie mit Befehl+, die Einstellungen aufrufen und den Proxy darin festlegen: 🎜

🎜

Proxy für https://goproxy.cn, Qiniu Yunjia, empfohlen, ich habe ihn verwendet und er ist sehr stabil. 🎜

🎜Denken Sie nach der Änderung daran, das Terminal erneut zu öffnen! 🎜🎜

Wenn Sie eine andere IDE oder Befehlszeile verwenden, können Sie erfahren, wie Sie den Proxy auf Baidu einrichten. 🎜

Verwenden Sie nach der Einrichtung go env, um die derzeit von go verwendeten Umgebungsvariablen anzuzeigen, mit denen Sie überprüfen können, ob die Konfiguration in Ordnung ist. 🎜

🎜3. Verwenden Sie github🎜🎜

Wenn die Installation nach den beiden oben genannten Schritten nicht erfolgreich sein kann, müssen Sie ungewöhnliche Mittel verwenden, um Abhängigkeiten zu installieren. . 🎜

🎜Paketreferenzsituation🎜🎜

Zunächst müssen Sie verstehen, wie lokale Pakete gespeichert werden und wie man sie referenziert. 🎜

  • Wenn es sich um ein herkömmliches Go-Download-Abhängigkeitspaket handelt, wird es unter GOPATH/src/domain name/package name gespeichert.
  • Wenn Sie go mod verwenden, wird das heruntergeladene Abhängigkeitspaket unter GOPATH/pkg/mod/domain name/package name@version number gespeichert.

Sie können das Paket also manuell herunterladen und im entsprechenden Verzeichnis ablegen. 🎜

🎜Laden Sie das Paket manuell herunter🎜🎜

Es ist für Github in China nicht völlig unzugänglich, aber es kann langsamer sein oder oft nicht geöffnet werden. Zu diesem Zeitpunkt können Sie Ihr Glück versuchen. 🎜

Offizielle Pakete finden Sie in diesem Warehouse: github.com/golang 🎜

Wie die Installation erfolgt, wird in der README.md jedes Pakets beschrieben: 🎜

Der einfachste Weg zur Installation besteht darin, go get -u http://golang.org/x/net auszuführen. Sie können das Repository auch manuell nach $GOPATH/src/http://golang.org klonen /x/net.🎜

Die meisten abhängigen Pakete sind in Github zu finden. 🎜

🎜4. Nutzen Sie Verbindungen 🎜🎜

Nicht jeder kann wissenschaftlich im Internet surfen Freunde in Ihrer Nähe, die wissenschaftlich im Internet surfen können, helfen Ihnen, das Paket für Sie herunterzuladen. 🎜

Dann kopieren Sie das entsprechende Paket unten GOPATH/pkg/mod. 🎜

5. Verwenden Sie go mod

Das letzte Szenario besteht darin, den Paketnamen zu kennen und einige Beispieldemos über die Dokumentation zu erhalten.

Fügen Sie den Code direkt in das Projekt ein und verwenden Sie dann go Tidy, um Paketabhängigkeiten automatisch zu organisieren. go tidy来自动规整包依赖。

一些常识

  • 1、包名就是仓库地址

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

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

  • 2、包里面的包

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

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

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

他就是 golang.org/x/crypto

Ein bisschen gesunder Menschenverstand

  • 1 Der Paketname ist die Lageradresse#🎜 🎜#

Zum Beispiel: github.com/gin-gonic/gin#🎜🎜#

Anmelden Bei den meisten davon handelt es sich um die Adresse des Lagers, in dem sich der Code befindet, und auf die meisten kann direkt zugegriffen werden. #🎜🎜#

  • #🎜🎜#2 Das Paket im Paket #🎜🎜#

Abhängigkeiten Es gibt eine sehr interessante Sache bei Taschen: Manchmal ist die verwendete Tasche die Tasche in der Tasche. #🎜🎜#

Es mag etwas kompliziert sein, aber es ist leicht zu verstehen. #🎜🎜#

Zum Beispiel das Paket am Anfang des Artikels: golang.org/x/crypto/ssh, #🎜🎜#

Er ist das Paket unten golang.org/x/crypto. #🎜🎜##🎜🎜#Wenn Sie also das SSH-Paket direkt installieren, wird das Paket oft nicht gefunden, sodass Sie es auf der oberen Ebene installieren müssen. #🎜🎜#

Das obige ist der detaillierte Inhalt vonGibt es abhängige Pakete in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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