У меня возникли проблемы с настройкой Go App engine на osX. Должен ли путь google-cloud-sdk в GOROOT или GOPATH?
Я помещаю google-cloud-sdk в /usr/local
Похоже, что есть исходный код: goroot/
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/
go env
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
$go get
package google.golang.org/appengine: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
package google.golang.org/appengine/datastore: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
Когда я попытался изменить PATH, чтобы включить /src:
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src"
$go get
package google.golang.org/appengine: mkdir /usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src: permission denied
package google.golang.org/appengine/datastore: cannot find package "google.golang.org/appengine/datastore" in any of:
/usr/local/go/src/google.golang.org/appengine/datastore (from $GOROOT)
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src/google.golang.org/appengine/datastore (from $GOPATH)
Я добавил путь к google-cloud-sdk в GOROOT:
export GOROOT="/usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GO не похоже на несколько путей в GOROOT:
$ go get
go: cannot find GOROOT directory: /usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot
Я запустил. /install.sh script после того, как скопировал источник в /usr/local
Дополнительный добавленный PATH не исправил ошибки, которые у меня были.
Я увидел этот ответ: Тест-коды для go и appengine
Но это от 5 лет назад и кажется неуклюжим/хаки. Кажется, через 5 лет будет более элегантное решение, которое копирует отдельные каталоги и создает символические ссылки.
ИЗМЕНИТЬ **********************
mv /usr/local/google-cloud-sdk/ ~/go/
, затем удалите GOPATH и GOROOT из .bash_profile
Затем я запустил. /install.sh
Я попытался запустить 'go get':
$go get
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
Так как это не удалось, я добавил путь к рабочему каталогу кода И добавил путь к google-cloud-sdk в PATH:
export GOPATH = "/Users/Bryan/work/gocode/skincarereview"
export PATH=$HOME/google-cloud-sdk:$PATH
go get
получить сбой с тем же сообщением:
$ go get
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
For more details see: 'go help gopath'