代码改变世界

使用Wing IDE开发Google App Engine

  onm  阅读(466)  评论(0编辑  收藏  举报

最近在研究Google App Engine的开发,想做一个小网站。之前用PyQt做了一个课设,IDE用的Eric,自动补全和调用提示等功能有点弱。后来找到Wing,自动补全和调用提示倒是强大,但是和PyQt结合的没有Eric好。现在试着用Wing IDE开发App Engine,今天初用,感觉良好。Wing IDE有个关于配置Google App Engine环境的说明,是英文的,我翻译了一下。有些地方,翻译的半生不熟,所以附上了原文。

先附上原文地址:http://www.wingware.com/doc/howtos/google-app-engine,其中“改善自动完成和转到定义”是比较重要的部分,然后以下是翻译。(可以配合别人写的WingIDE部署GAE(google app engine)更加清楚如何具体操作关于调试的部分。)

 

Wing IDE是一个可以用来编写,测试和调试Google App Engine的Python代码的集成开发环境。Wing提供自动完成(auto-completion),调用提示(call tips),强大的调试工具和许多其他特性帮助你编写,导航和理解Python代码。由于当你保存代码到磁盘时,Google App Engine会重新载入你的代码,所以你可以不需要重新启动调试进程而获得非常快的编辑、调试体验。

配置环境

为了Wing可以处理Google App Engine代码,你需要在Wing中创建一个工程并且设置位于Google SDK目录顶层的dev_appserver.py为主要的调试文件。这个可以通过Debug菜单下的设置主要调试文件选项来完成。

调试你的程序

你可以通过选择在Debug菜单下的Start/Continue来使在Google App Engine运行的情况下来调试你的代码,并且指定你的应用目录作为运行参数。例如,为了运行SDK附带的guestbook示例,这个运行的参数(argument)将是“${GOOGLE_APPENGINE_DIR}/demos/guestbook”其中${GOOGLE_APPENGINE_DIR}是被SDK安装的目录或者设置的环境变量替换(或者使用${WING:PROJECT_DIR}相对于工程文件所在位置的目录)。如果目录名称包含一个空格,这个引用标志是必须的。

一旦调试开始,请求可以由网络浏览器发出,并且可以在Python文件中设置断点。例如,为了guestbook示例生成的主页面发生中断,可以在guestbook.py中的Mainpage.get方法中设置一个断点。你也可以对于正在运行的App Engine程序编辑Python代码,并且然后重新加载页面就可以看到变化。在大多数情况,没有必要在编辑后重新开始调试进程。

注意Debugger/Exceptions/Report Exceptions设置应该被设置成When Printed(默认值)当运行Google App Engine调试工具的外部,处理Google App Engine或者Wing将会报告一些内被处理的额外的异常。(Note that the Debugger / Exceptions / Report Exceptions preference should be set to When Printed (the default) when working with Google App Engine or Wing will report some additional exceptions that are handled internally when running Google App Engine outside of the debugger.)

改善自动完成和转到定义

Wing不能解析最近版本的Google App Engine的sys.path,所以可能因为自动完成,转到定义或者其它功能而寻找一些模块时而产生失败。为了使它工作,可以在dev_appserver.py中的fix_sys_path处设置一个断点,并且开始调试。然后再Debug Probe工具(仅Wing Pro版本)中输入如下:

os.pathsep.join(EXTRA_PATHS)

复制返回的结果到剪贴板,然后右键点击dev_appserver.py文件,打开file properties。然后,在Environment标签下的Python Path下选择Custom,然后点击View as Text按钮,粘贴刚才复制的额外的路径。

如果你移动了app engine的安装位置,你可能需要重新做这些事情,或者你可以使用${WING:PROJECT_DIR}来转换这个路径到基于工程的位置。

改善设置和暂停断点的响应时间

在盒子外面(Out of the box),当没有事情可做的时候,Google App Engine将保持select调用30秒。这将导致设置断点或者暂停调试进程产生延迟。为了加速这个过程,进入tools/dev_appserver.py并且改变DEFAULT_SELECT_DELAY为一个更短的值,例如1.0。

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示