В моем проекте Google App Engine, написанном в разделе "Go", который я использовал, например,
import "appengine/datastore"
с успехом в течение длительного времени и при условии, что импорт находит вещи, где у меня есть SDK App Engine. Однако теперь я хочу использовать стороннюю библиотеку также от Google, которая также использует вещи из App Engine, но импортирует с полным путем:
import "google.golang.org/appengine"
Запуск приложения
$ goapp serve
не удается найти appengine:
...go/src/golang.org/x/oauth2/client_appengine.go:16: can't find import: "google.golang.org/appengine/urlfetch"
Can't find package "google.golang.org/appengine" in $GOPATH
Очевидно, что я хочу использовать те же части приложения Engine, чтобы не было других проблем. Мое первое, что я хочу сказать библиотеке сторонних разработчиков, использовать библиотеки SDK App Engine, но я не знаю, как он имеет другой префикс в импорте.
Должен ли я использовать полный путь в моем проекте для всех импорта App Engine? Это было бы противоположно тому, что я читал на веб-страницах Google App Engine для Golang. Например. здесь.
Как правило, каким образом можно настроить файлы так, чтобы они находили нужные библиотеки приложений как в разработке, так и в App Engine, а также в сторонних библиотеках?
Заранее благодарим за помощь!
UPDATE
Я также вижу, что после добавления библиотеки сторонних разработчиков и запуска go get
он извлекал всевозможные вещи в $GOPATH/src/google.golang.org/api/...
. Много вещей там и appengine, как и т.д. Кажется, все Golang API Google...!
Так что это не удалось решить, но я узнал, что есть изменения, которые меняют на полностью адаптированные пути импорта приложений.
Теперь у меня есть приложение, выполняемое локально, когда я загрузил новый appengine, чтобы удовлетворить библиотеку oauth, которая использует новые пути импорта.
go get google.golang.org/appengine
В соответствии с этим:
Если вы не хотите обновлять все приложение для использования новых пакетов App Engine, вы можете использовать оба набора пакетов параллельно, используя только новые пакеты с пакетом oauth2.
На самом деле очень запутанно, и я не знаю, что доступно, когда я развертываю App Engine. Кто-нибудь знает?