去 - 找不到包"appengine"

if *_*one 9 google-app-engine go

我已按照本指南安装AppEngine SDK. https://developers.google.com/appengine/docs/go/gettingstarted/introduction

我最初使用Brew安装了Go 1.2(在OSX上).我设定了自己的路径:

export GOPATH=$HOME/Documents/go
export PATH=$GOPATH/bin:$PATH
export PATH=$HOME/Documents/go/go_appengine:$PATH
Run Code Online (Sandbox Code Playgroud)

我复制/粘贴了你好世界的应用程序,然后运行它goapp serve.都好.

现在,一旦我尝试使用appengine:

import (
    "appengine"
)
Run Code Online (Sandbox Code Playgroud)

我得到编译时错误:

api.go:5:5: cannot find package "appengine" in any of:
    /usr/local/Cellar/go/1.2/libexec/src/pkg/appengine (from $GOROOT)
    /Users/jan/Documents/go/src/appengine (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)

起始指南文档没有说明这一点.似乎SDK有自己的$GOPATHdir with /src,/pkg/bin.我假设我必须一直手动切换$GOPATHSDK和本机Go之间,这没有任何意义,甚至不适合我(因为我主要处理非appengine的东西).

我在这里显然做错了.我错过了什么?

编辑:看起来实际的appengine服务器正在编译并运行正常,但是我的整个设置都被破坏了(测试,Vim ......).有没有解决方法?

小智 7

alpe1提供,以下几行解决了vim编译器的问题:

ln -s $APPENGINE_SDK/goroot/src/pkg/appengine $GOROOT/src/pkg/ 
ln -s $APPENGINE_SDK/goroot/src/pkg/appengine_internal $GOROOT/src/pkg/
mkdir -p $GOROOT/src/pkg/code.google.com/p/
ln -s $APPENGINE_SDK/goroot/src/pkg/code.google.com/p/goprotobuf
$GOROOT/src/pkg/code.google.com/p/
Run Code Online (Sandbox Code Playgroud)

我需要更新gocode lib-path(cf Options)以获得appengine 的自动完成功能:

gocode set lib-path "$APPENGINE_SDK/goroot/pkg/linux_amd64_appengine"
Run Code Online (Sandbox Code Playgroud)

  • 不要这样做.您不应该将常规Go安装与Go App Engine SDK混合. (4认同)