Не удается найти пакет "github.com/gorrila/mux" ни в одном из
Сообщение об ошибке:
app.go:9:3: cannot find package "github.com/gorrila/mux" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/gorrila/mux (from
$GOROOT)
/Users/myname/go/src/github.com/gorrila/mux (from $GOPATH)
Я понимаю, что GOROOT предназначен для инструментов компилятора, которые поставляются с установкой, поэтому я не уверен, почему он ищет мультиплексор там. Но я вижу mux во втором месте в моем каталоге, который я создал для кода go.
Я знаю, что этот вопрос задавался однажды, и я попытался отладить, следуя советам из этого вопроса.
Я использовал доморощенный и установил версию Go go1.10.3 darwin/amd64
,
Вот что я считаю важной частью моей работы:
GOPATH="/Users/myname/go"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.10.3/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.10.3/libexec/pkg/tool/darwin_amd64"
Я также установил свой профиль bash, исключая GOROOT, потому что это больше не требуется:
export GOPATH="/Users/myname/go/src/github.com"
export PATH="/Users/myname/go/src/github.com/bin:$PATH"
И сделал source ~/.bash_profile
,
Этой настройки было достаточно, чтобы я мог запускать базовые программы go, такие как hello world. Поэтому я попытался запустить код, используя mux
библиотека.
Сначала я установил mux в каталог моей программы (cd'd в /Users/myname/go/src/github.com/myname/restapi
).
Затем я побежал:
go get -u github.com/gorilla/mux
Я вижу, что папка существует в моем искателе. Я также посмотрел в терминале:
ls -l /Users/myname/go/src/github.com | grep gorilla
=> drwxr-xr-x 3 myname staff 102 Jun 29 14:35 gorilla
Затем:
cd $GOPATH (/Users/myname/go)
go list ... | grep gorilla
=> can't load package: package ../..: no Go files in /Users
Так что я увидел гориллу в первой команде, но не во второй. Тем не менее, я вижу каталог gorilla дальше в моем каталоге go, поэтому я не уверен, в чем проблема.
Бег go build
возвращает пакет концерна:
app.go:9:3: cannot find package "github.com/gorrila/mux" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/gorrila/mux
(from $GOROOT)
/Users/myname/go/src/github.com/gorrila/mux (from $GOPATH)
Я не уверен, почему он ищет mux в каталоге usr. Есть ли проблема с любым из моих путей? Я продолжаю проверять этот последний путь, чтобы увидеть, что там есть каталог mux.
2 ответа
Похоже, вы ошиблись "github.com/gorilla/mux"
- у него один "р" и два "л". (Тщательно сравните go get
Команду вы процитировали и import
заявление в вашем исходном файле.)
Можете ли вы попытаться установить свой .bash_profile
в этом случае:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN