Мое приложение прекрасно работает с использованием программного обеспечения для разработки Appengine. Когда я пытаюсь развернуть, я получаю эту ошибку:Структура папки Appengine для проекта GO
main.go: 11: не может найти импорт: «github.com/afoo/cohort/models»
Моя структура папок выглядит следующим образом, где afoo является подкаталог "стандартного" SRC/github.com настройки, ссылки в GOPATH:
app.yaml файл достаточно прост:
application: application-id
version: 1
runtime: go
api_version: go1
handlers:
- url: /styles
static_dir: styles
- url: /scripts
static_dir: scripts
- url: /.*
script: _go_app
Файл main.go имеет funcs обработчик URL Я определил, например:
func init() {
// Register a handler for /.
http.HandleFunc("/", MapNetworkHandler)
}
импорта модуля в main.go полностью квалифицирован, и выглядеть следующим образом:
"github.com/afoo/cohort/models"
Google групп имеет длинное обсуждение с 2014 года, которое пытается объяснить правильную настройку папки. Он находится здесь:
Из этой дискуссии, я узнал, что мне нужно, чтобы отделить все модули (здесь, модель, хранилище и утилиты) из основной папки. Но тогда есть некоторые путаные упоминания о других файлах .yaml, которые должны входить в каждую папку модуля, без описания того, как они выглядят, вместе с аллюзиями в файл init (.go) скелета, который каким-то образом импортирует все остальное.
К сожалению, я учился на примере, и я не могу найти хороший пример, который бы мне помог. Я был бы признателен за подробное объяснение правильных структур папок и дополнительных файлов, о которых может знать кто-то.
Спасибо за помощь!
Спасибо, Александр. Я бы предпочел настроить приложение таким образом, но я получаю сообщение об ошибке «конфликт файлов приложения xxx.go с тем же файлом, который был импортирован из GOPATH.«Согласно комментариям к ссылке« Группы Google »в моем исходном сообщении, эту ошибку следует решить,« сохраняя все ваши файлы yaml и связанные с ними исходные файлы вне вашего GOPATH, а затем импортируйте [любые] необходимые вам пакеты находятся в вашем GOPATH из этих файлов ». Это работает в среде dev, но я не могу его развернуть. – Brent
Попробуйте переместить свой проект за пределы GOPATH - вот как я это делаю, и он работает для меня. обновите ответ с помощью моей настройки. –
Спасибо, Александр. Ваше решение работает как локально, так и для загрузки. Интересно, однако, что моя IDE выбора (VS Code) сообщает об ошибке при импорте моих модулей: «Не удается найти пакет 'models' в любом из: [GOROOT path] [GOPATH path] " Я просто оставлю это. – Brent