我使用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编写了代码。)用户必须设置一些配置。但我不希望用户必须修改库源代码。
感谢您的帮助。
答案 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。