"нераспознанный путь импорта" с go get


Я пытаюсь установить web.go, но go get github.com/hoisie/web возвращает

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"

и это продолжается некоторое время с различными пакетами, прежде чем вернуть ничего больше. go env дает мне:

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"

как я могу установить web.go? Используя go get (а не go install) - это то, что находится в README на странице github. Моя версия go version go1.2 linux/amd64.

9 69

9 ответов:

проблемы связаны с недопустимым GOROOT.

Я думаю, что вы установили Go in /usr/local/go.
Так что измените свой GOROOT путь к значению /usr/local/go/bin.

похоже, что вы хотели, чтобы ваше рабочее пространство (GOPATH) находилось в /home/me/go.

это может решить вашу проблему.
Добавьте это в нижнюю часть вашего профиля bash, расположенного здесь =>$HOME/.profile

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

обязательно удалите старые ссылки GOROOT.

затем попробуйте установить web.пойти опять.

если это не работает, то Ubuntu install Go для вас.

sudo apt-get install golang

видео учебник: http://www.youtube.com/watch?v=2PATwIfO5ag

Я установил Go with brew на OSX 10.11, и обнаружил, что я должен был поставить GOROOT to:

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

(конечно, заменить версию в этом пути с go версии у вас есть)

Brew использует символические ссылки, которые обманывали gotool. Так что следуйте по ссылкам домой.

у меня была точно такая же проблема, после перехода от старой версии go (установленной из старого PPA) к более новым (1.2.1) пакетам по умолчанию в ubuntu 14.04.

первым шагом было очистить существующий go:

sudo apt-get purge golang*

который выводит следующие предупреждения:

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

похоже, что удаление go оставляет некоторые файлы позади, что, в свою очередь, может запутать более новую установку. Точнее, сама установка будет завершена нормально, но после этого любая команда go, например " go get something" дает эти ошибки "нераспознанный путь импорта".

все, что мне нужно было сделать, это сначала удалить эти dirs, переустановить golang, и все работает как шарм (предполагая, что вы также установили GOPATH)

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

потому что GFW запретил вам доступ golang.org ! И когда я использую прокси, он может работать хорошо.

вы можете посмотреть на информацию с помощью команды go get -v -u golang.org/x/oauth2

У меня была такая же проблема на macOS 10.10. И я обнаружил, что проблема вызвана оболочкой OhMyZsh. Затем я снова переключился на bash, все прошло нормально.

вот мой 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

У меня была та же проблема после обновления go1.2 до go1.4.

я переименовал src в _src в моем GOPATH, а затем сделал go get -v

он работал, то я удалил _src.

надеюсь, что это помогает.

У меня была похожая проблема. Но это было только потому, что пакет, который я устанавливал не в $GOPATH/src/ каталог, когда я установил в этом каталоге все работало нормально (за исключением того, что имя пакета отличается вызванной проблемой, но я использовал Makefile для сборки, так что это может не иметь отношения к вашей проблеме).

я столкнулся с этой проблемой при установке другого пакета, и это может быть вызвано конфигурацией GOROOT и GOPATH на вашем пути. Я, как правило, не устанавливаю GOROOT, потому что моя установка OS X обрабатывала его (я считаю) для меня.

  1. убедитесь в следующем .профиль (или где бы вы ни хранили конфигурацию профиля: .bash_profile, .zshrc, .bashrc, etc):

    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
    
  2. кроме того, вы, вероятно, хотите unset GOROOT, а также, если этот путь тоже неверно.

  3. кроме того, обязательно очистите свой путь, подобно тому, что я сделал ниже, непосредственно перед назначением ГОПАТА, т. е.:

    export PATH=$HOME/bin:/usr/local/bin:$PATH
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
    
  4. затем, source <.profile> активировать

  5. повтор go get

наиболее распространенными причинами являются:
1. Неправильно настроенный ГОРООТ
Или
2. ГОПАТ не установлен