找不到包“appengine / cloudsql”

时间:2013-11-08 05:43:09

标签: google-app-engine go

我使用Google Cloud SQL和MySQL服务器开发了一些GO库。当我导入`appengine / cloudsql时,发生了以下错误。

cloud.go:20:2: cannot find package "appengine/cloudsql" in any of: /usr/local/Cellar/go/1.1.2/src/pkg/appengine/cloudsql (from $GOROOT) /Users/lameduck/myGo/src/appengine/cloudsql (from $GOPATH)

我知道此软件包appengine/cloudsql仅适用于Google App Engine,并且在其他任何地方都不存在。

我想知道如何将GAE和标准sql库用于单个库中的其他环境。

PS:我可以正确设置Google App Engine SDK。我的问题与此无关。我希望我的图书馆可以在Google App Engine和独立环境中一起运行。 (我已经为GAE编写了代码,并为其他dabatases编写了代码。)用户必须设置一些配置。但我不希望用户必须修改库源代码。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我解决了这个问题。我使用build constraint来使用正确的例程并避免错误。 App Engine有appengine的构建约束。

  

App Engine SDK引入了新的构建约束术语:   “AppEngine上”。指定

的文件      

// + build appengine将由App Engine SDK构建并被忽略   去工具。相反,指定

的文件      运行时,App Engine SDK会忽略

// + build!appengine   工具很乐意构建它们。

PS: 不管怎样,我赞成了其他答案。谢谢。

答案 1 :(得分:1)

包导入在编译/链接时完成。并且Go不支持运行时条件导入,与Python不同。

您正在寻找的功能是动态库加载(例如在C / C ++中,您可以在运行时加载.so / .dll),但是当前转到doesn't support it