【问题标题】:breaking on unhandled exceptions in pydev/gae打破 pydev/gae 中未处理的异常
【发布时间】:2011-08-11 08:10:41
【问题描述】:

我正在使用 pydev 开发一个谷歌应用引擎应用程序。我按照here 中提到的步骤配置 pydev 调试器以中断未处理的异常。我可以让它在一个示例 pydev 项目上工作,但是当我在我的 pydev gae 项目中尝试相同的步骤时,它不起作用并给出以下错误:

pydev 调试器:警告:psyco 不是 可用于加速(调试器 仍然可以正常工作,但有点 较慢)pydev调试器:启动 ...
回溯(最近一次通话最后一次):
文件“c:\程序 文件\google\google_appengine\google\appengine\tools\dev_appserver.py", 第 3858 行,在 _HandleRequest self._Dispatch(dispatcher, self.rfile, outfile, env_dict) 文件 “c:\程序 文件\google\google_appengine\google\appengine\tools\dev_appserver.py", 第 3792 行,在 _Dispatch 中 base_env_dict=env_dict) 文件 "c:\program 文件\google\google_appengine\google\appengine\tools\dev_appserver.py", 第 580 行,在调度中 base_env_dict=base_env_dict) 文件 "c:\program 文件\google\google_appengine\google\appengine\tools\dev_appserver.py", 第 2918 行,在调度中 self._module_dict) 文件 "c:\program 文件\google\google_appengine\google\appengine\tools\dev_appserver.py", 第 2822 行,在 ExecuteCGI 中 reset_modules = exec_script(handler_path, cgi_path, 钩子)文件“c:\程序 文件\google\google_appengine\google\appengine\tools\dev_appserver.py", 第 2702 行,在 ExecuteOrImportScript 中 在 script_module.dict 文件中执行 module_code "C:\Users\siddjain\workspace\rfad\src\main.py", 第 1 行,在 import pydevd ImportError: No module named pydevd

我对 gae 项目的调试配置是这样的:

它工作的示例 pydev 项目是这样的,并且在我的 gae 项目中遵循相同的模式:

import pydevd

def f(x,y):
    z = y/x;
    return z;

def main():
    pydevd.set_pm_excepthook()
    print f(0,0)

if __name__ == '__main__': 
    main()

测试项目的运行配置如下:

pydevd.py 模块位于 C:\eclipse\plugins\org.python.pydev.debug_2.0.0.2011040403\pysrc 下。尽管此路径不包含在测试项目的 pythonpath 中,但在测试中中断工作。我也尝试在 gae 项目的 pythonpath 中包含这个路径,看看是否能解决我的问题,但它没有

【问题讨论】:

    标签: pydev


    【解决方案1】:

    尽管以下步骤摆脱了 No module named pydevd 错误,但仍未修复:
    1. 创建一个符号链接到 C:\eclipse\plugins\org.python.pydev.debug_2.0.0.2011040403\pysrc:
    src>mklink /d 调试器 C:\eclipse\plugins\org.python.pydev.debug_2.0.0.2011040403\pysrc
    2.在C:\eclipse\plugins\org.python.pydev.debug_2.0.0.2011040403\pysrc下放一个空的__init__.py文件。我从一些我现在找不到的谷歌链接中学到了这一点。
    3.在源代码中:
    将 debugger.pydevd 导入为 pydevd

    在这些步骤之后,它可以导入 pydevd,但仍然不会因未捕获的异常而中断。 开发服务器在您的本地计算机上运行您的应用程序以测试您的应用程序。服务器模拟 App Engine 数据存储区、服务和沙盒限制(因此是第 1 步)。虽然我不明白为什么我们需要导入 pydevd,因为它的 pydevd 首先运行我们的应用程序!
    在运行->调试配置->解释器选项卡中,如果我单击“查看生成的命令行...”
    C:\Python25\python.exe -u C:\eclipse\plugins\org.python.pydev.debug_2.0.0.2011040403\pysrc\pydevd.py --vm_type python --client 127.0.0.1 --port 0 --file "c:\program 文件\google\google_appengine\dev_appserver.py"

    将使用的 PYTHONPATH 是:

    C:\eclipse\plugins\org.python.pydev_2.0.0.2011040403\PySrc\pydev_si...

    【讨论】:

      猜你喜欢
      • 2010-10-02
      • 2011-08-15
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 2014-10-10
      • 2012-02-06
      • 2011-11-19
      相关资源
      最近更新 更多