如何为将来在Google App Engine中使用构建标准Python项目(模块、库)?
我现在正在开发一个Python项目,这个项目在不断扩大,将来可能会把它做成一个在Google App Engine(GAE)上运行的网页应用。
随着项目的发展,我正在把一些可能会重复使用的代码整理成单独的包和模块,目前这些包和模块都在我的PYTHONPATH里。
你有什么建议可以帮助我更好地组织我的项目和可重用的包,以便将来能顺利地融入GAE项目吗?
我在其他帖子中看到关于GAE项目结构的推荐(比如这个和这个以及这个),感觉它们的结构比较简单扁平——这样做是最好的选择吗?
那关于第三方的包和模块呢?从一开始就使用VirtualEnv是否是个好主意?
非常感谢!
Prembo。
4 个回答
2
我在学校写的毕业论文是用App Engine做的。这个项目是开源的,你可以随意使用它。我希望你能理解这个项目的思路,并且可以根据自己的需要进行调整。
2
我不能具体告诉你关于GAE的事情,但我可以告诉你,"咬紧牙关"这句话和它没关系——使用VirtualEnv(还有virtualenvwrapper)会让你的Python开发变得更顺畅、更简单,整体上也更轻松。
它的开销很小,带来的好处却很多。
赶紧切换过来吧。
5
你只需要把各种库放在你应用的根目录下的包里就可以了。根目录会自动加入到你应用的 sys.path
中。
如果你愿意,也可以把它们放在根目录下的一个 lib
文件夹里,但这样的话你需要写一个模块,把这个文件夹添加到 sys.path
的末尾,并且在从 lib
导入任何东西之前先导入这个模块。
使用 virtualenv 也是一种选择,但我个人觉得这并没有太大好处,因为你不能在生产环境中运行 virtualenv,而 dev_appserver
是模拟生产环境的。