standard how google engine app google-app-engine go

google-app-engine - how - google app engine flex vs standard



¿Dónde busca GO google-cloud-sdk? ¿Qué debería ser GOPATH? (1)

No entra ni $ GOROOT ni $ GOPATH. Simplemente descomprímalo en su directorio $ HOME y ejecute el instalador. Si es necesario, agréguelo a $ PATH agregando esta línea a .bash_profile .

export PATH=$HOME/google-cloud-sdk:$PATH

Asegúrate de que también tomas el SDK de golang con los gcloud components install app-engine-go https://cloud.google.com/appengine/docs/standard/go/download

NO cambie su ruta para incluir el directorio src en google-cloud-sdk/platform/google_appengine/goroot/src . Eso romperá las cosas. Dejas tu $ GOPATH para que sea tu instalación normal. El uso de App Engine SDK for Go usa automáticamente las fuentes en ese directorio sin ninguna manipulación.

Además, NUNCA debe cambiar MANUALMENTE $ GOROOT a menos que planee compilar una nueva versión de Go desde el origen (como en una nueva versión del lenguaje). Automáticamente configurará el $ GOROOT apropiado para usted. https://dave.cheney.net/2013/06/14/you-dont-need-to-set-goroot-really

Si su instalación está desordenada más allá de lo razonable (me pasó una vez), simplemente elimine el SDK de la nube y cualquier referencia a él en su $ PATH. También desinstale completamente la instalación regular de Go. Entonces comienza desde cero. Instala Go, descomprime google-cloud-sdk, ejecuta el instalador (agrega $ PATH si es necesario), los gcloud components install app-engine-go . Voila.

Al desarrollar para App Engine, sus fuentes van a su REGULAR $ GOPATH. NO entran en google-cloud-sdk/... ningún lado. Para ejecutar el dev_appserver localmente, ejecute dev_appserver.py [path-to-source] donde la ruta dada contiene su código y la aplicación.yaml. Por lo general, me cd a la ruta de mi proyecto (por ejemplo, cd $HOME/go/src/myproject ) y me ejecuto con dev_appserver.py ./ . https://cloud.google.com/appengine/docs/standard/go/tools/using-local-server

La implementación está cubierta aquí. https://cloud.google.com/appengine/docs/standard/go/tools/uploadinganapp

EDITAR: estructura de la carpeta.

$ GOPATH = $ HOME / go

Ubicación para la carpeta google-cloud-sdk

Tengo problemas para configurar Go App Engine en osX. ¿Debería la ruta google-cloud-sdk estar en GOROOT o GOPATH?

Puse el google-cloud-sdk en / usr / local

Parece que hay un código fuente en: goroot /

/usr/local/google-cloud-sdk/platform/google_appengine/goroot/

ir env

GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"

$ ir a buscar

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''

Cuando intenté cambiar la RUTA para incluir / src:

GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src"

$ ir a buscar

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)

Agregué el camino a google-cloud-sdk a GOROOT:

export GOROOT="/usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot"

GO no parece gustarle en múltiples rutas en GOROOT:
$ ir a buscar

go: cannot find GOROOT directory: /usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot

Ejecuté el script ./install.sh después de copiar el código fuente a / usr / local

La PATH adicional agregada no solucionó los errores que estaba teniendo.

Vi esta respuesta: casos de prueba para go y appengine

Pero es de hace 5 años y parece torpe / hacky. Parecería que en 5 años habría una solución más elegante que la copia de directorios individuales y la creación de enlaces simbólicos.

EDITAR **********************
mv /usr/local/google-cloud-sdk/ ~/go/ then borrado GOPATH y GOROOT de .bash_profile

Luego ejecuté ./install.sh

Intenté ejecutar ''get get'':

$ ir a buscar

go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH

Como eso falló, agregué la ruta al directorio de trabajo del código Y agregué la ruta a google-cloud-sdk a PATH:

export GOPATH = "/Users/Bryan/work/gocode/skincarereview" export PATH=$HOME/google-cloud-sdk:$PATH

go get obtener falló con el mismo mensaje:

$ go get go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH For more details see: ''go help gopath''