it-swarm.com.de

"Unbekannter Importpfad" mit go get

Ich versuche einen web.go zu installieren, aber go get github.com/hoisie/web läuft zurück

package bufio: unrecognized import path "bufio"
package bytes: unrecognized import path "bytes"
package crypto/Rand: unrecognized import path "crypto/Rand"
package crypto/sha1: unrecognized import path "crypto/sha1"
package crypto/tls: unrecognized import path "crypto/tls"
package encoding/base64: unrecognized import path "encoding/base64"
package encoding/binary: unrecognized import path "encoding/binary"
package encoding/json: unrecognized import path "encoding/json"
package errors: unrecognized import path "errors"
package fmt: unrecognized import path "fmt"

und dies setzt sich eine Weile mit verschiedenen Paketen fort, bevor nichts anderes zurückgegeben wird. go env gibt mir:

GOARCH="AMD64"
GOBIN="/usr/local/go/bin"
GOCHAR="6"
GOEXE=""
GOHOSTARCH="AMD64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/home/me/go"
GOTOOLDIR="/home/me/go/pkg/tool/linux_AMD64"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"

Wie kann ich web.go installieren? Die Verwendung von go get (anstelle von go install) ist in README auf der Github-Seite enthalten. Meine Go-Version ist go version go1.2 linux/AMD64.

73
q3d

Die Probleme beziehen sich auf eine ungültige GOROOT.

Ich denke, Sie haben Go in /usr/local/go installiert.
Ändern Sie also Ihren GOROOT-Pfad in den Wert von /usr/local/go/bin.

Es scheint, dass Sie Ihren Arbeitsbereich (GOPATH) unter /home/me/go haben wollten.

Dies könnte Ihr Problem beheben.
Fügen Sie dies am Ende Ihres bash-Profils ein, das sich hier befindet => $HOME/.profile

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin

Stellen Sie sicher, dass Sie die alten Verweise von GOROOT entfernen.

Versuchen Sie dann erneut, web.go zu installieren.

Wenn das nicht funktioniert, sollten Sie Ubuntu Go für Sie installieren.

Sudo apt-get install golang

Video-Tutorial: http://www.youtube.com/watch?v=2PATwIfO5ag

81
Larry Battle

Ich installierte Go mit brew unter OSX 10.11 und stellte fest, dass ich GOROOT folgendermaßen einstellen musste:

/usr/local/Cellar/go/1.5.1/libexec

(Natürlich ersetzen Sie die Version in diesem Pfad durch die Go-Version, die Sie haben.)

Brew verwendet symbolische Links, die die gotool täuschen. Folgen Sie den Links nach Hause.

29
Eric

Ich hatte genau das gleiche Problem, nachdem ich von der alten Go-Version (installiert vom alten PPA) zu neueren (1.2.1) Standardpaketen in Ubuntu 14.04 übergegangen war.

Der erste Schritt bestand darin, den vorhandenen Go zu löschen:

Sudo apt-get purge golang*

Welche Ausgaben folgende Warnungen ausgeben:

dpkg: warning: while removing golang-go, directory '/usr/lib/go/src' not empty so not removed
dpkg: warning: while removing golang-go.tools, directory '/usr/lib/go' not empty so not removed

Es sieht so aus, als würde das Entfernen von go einige Dateien zurücklassen, was wiederum die neuere Installation verwirren kann. Genauer gesagt, die Installation selbst wird problemlos abgeschlossen, aber danach gibt jeder Befehl, z. B. "gehen Sie etwas holen", diese "nicht erkannten Importpfad" -Fehler.

Alles, was ich tun musste, war, diese Verzeichnisse zuerst zu entfernen, Golang neu zu installieren, und alles funktioniert wie ein Zauber (vorausgesetzt, Sie setzen auch GOPATH).

# careful!
Sudo rm -rf /usr/lib/go /usr/lib/go/src
Sudo apt-get install golang-go golang-go.tools
21
jareks

Weil GFW Ihnen den Zugriff auf golang.org! Untersagt. Und wenn ich den Proxy benutze, kann er gut funktionieren.

sie können die Informationen mit dem Befehl go get -v -u golang.org/x/oauth2 anzeigen.

5
jefby

$ unset GOROOT hat für mich gearbeitet. Wie die meisten Antworten vermuten lassen, ist Ihr GOROOT ungültig.

3
noelmcloughlin

Ich hatte das gleiche Problem unter MacOS 10.10. Und ich fand, dass das Problem von OhMyZsh Shell verursacht wurde. Dann bin ich wieder auf bash umgestiegen, alles lief gut.

Hier ist mein Go Env

bash-3.2$ go env
GOARCH="AMD64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="AMD64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/bis/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_AMD64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1
2
Igor Barinov

Ich hatte ein ähnliches Problem. Aber das lag nur daran, dass sich das Paket, das ich installiert hatte, nicht im $GOPATH/src/-Verzeichnis befand. Wenn ich in diesem Verzeichnis installierte, funktionierte alles einwandfrei (außer der Paketname ist ein anderes Problem, aber ich habe Makefile verwendet, um zu erstellen, dass dies möglicherweise nicht relevant ist Problem).

0
shintaroid

Die häufigsten Ursachen sind:
1. Ein falsch konfiguriertes GOROOT
ODER
2. GOPATH ist nicht gesetzt

0
Clyde D'Cruz

Dieses Problem ist bei der Installation eines anderen Pakets aufgetreten. Dies kann durch die Konfiguration von GOROOT und GOPATH in Ihrem PATH verursacht werden. Ich neige dazu, GOROOT nicht einzustellen, weil meine OS X-Installation es (glaube ich) für mich erledigt hat.

  1. Stellen Sie Folgendes in Ihrem .profile sicher (oder wo auch immer Sie die Profilkonfiguration speichern: .bash_profile, .zshrc, .bashrc usw.):

    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
    
  2. Wahrscheinlich möchten Sie auch unset GOROOT, falls dieser Pfad auch falsch ist.

  3. Stellen Sie außerdem sicher, dass Sie Ihren PFAD säubern, ähnlich wie ich es vor der GOPATH-Zuweisung getan habe, d. H .:

    export PATH=$HOME/bin:/usr/local/bin:$PATH
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
    
  4. Dann source <.profile> zum Aktivieren

  5. go get erneut versuchen
0
ThatsAMorais

Ich hatte das gleiche Problem, nachdem ich go1.2 auf go1.4 aktualisiert hatte. 

Ich habe src in _src in meinem GOPATH umbenannt und dann einen go get -v

Es hat funktioniert, dann habe ich _src gelöscht.

Ich hoffe es hilft.

0
Erol