В моем проекте Google App Engine, написанном на Go, который я использовал, например.Как правильно импортировать Golang appengine?
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
Очевидно, что я хочу использовать те же части App Engine, чтобы не было других проблем. Мое первое, что я хочу сказать библиотеке сторонних разработчиков, использовать библиотеки SDK App Engine, но я не знаю, как он имеет другой префикс в импорте.
Должен ли я использовать полный путь в моем проекте для импорта всего приложения? Это было бы противоположно тому, что я читал в Google App Engine для веб-страниц Golang. Например. here.
Как правило, что такое настройка, чтобы находить нужные библиотеки приложений как в разработке, так и в App Engine, а также в сторонних библиотеках?
Заранее благодарим за любую помощь!
UPDATE
Я также могу видеть, что после добавления библиотеки третьей стороны и работает go get
он принес все виды материала в $GOPATH/src/google.golang.org/api/...
. Много вещей там и appengine, и т.д. Это, кажется, все Golang Google API ...!
Так что это не разрешено, но я узнал, что есть изменение, которое изменяется на fully qualified appengine import paths.
Теперь у меня есть приложение, выполняемое локально, когда я втягиваю новый appengine, чтобы удовлетворить библиотеку oauth, которая использует новые пути импорта.
go get google.golang.org/appengine
По this:
Если вы не хотите, чтобы полностью обновить приложение, чтобы использовать новые пакеты для App Engine, вы можете использовать оба набора пакетов параллельно, используя только новые пакеты с пакетом oauth2.
На самом деле очень запутанно, и я не знаю, что доступно при развертывании в App Engine. Кто-нибудь знает?
Почему downvote? – murrekatt
Я смущен. Это разрешено? Это было только потому, что вы никогда не выбирали свои зависимости? – JimB
Вы пробовали просто «импортировать» appengine «'? Я предполагаю, что Go должен реализоваться из '$ GOPATH', не указывая явно полный путь. – PieOhPah