"нераспознанный путь импорта" с 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 ответов:
проблемы связаны с недопустимым
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 обрабатывала его (я считаю) для меня.
убедитесь в следующем .профиль (или где бы вы ни хранили конфигурацию профиля: .bash_profile, .zshrc, .bashrc, etc):
export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin
кроме того, вы, вероятно, хотите
unset GOROOT
, а также, если этот путь тоже неверно.кроме того, обязательно очистите свой путь, подобно тому, что я сделал ниже, непосредственно перед назначением ГОПАТА, т. е.:
export PATH=$HOME/bin:/usr/local/bin:$PATH export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin
затем,
source <.profile>
активировать- повтор
go get