我正在使用PyDev编辑Python,并且拥有一个无法静态分析或强制内置的模块。我如何调试PyDev运行的自动完成服务器Python进程,以找出为什么它不能为这个模块提供完成,并希望调整一些东西以使其工作?
答案 0 :(得分:1)
嗯,强制内置函数的完成主要是通过在模块中执行dir()然后获取令牌来驱动的(所以如果你可以从shell中执行,那么代码完成引擎应该能够执行它也是 - 但请注意它只会导入并执行一个目录,而不是实际执行您的代码)。
此外,这仅适用于不在项目之下的代码(即:来自系统解释器中外部库的代码)
为了分析你自己的代码(在项目下面),PyDev将只使用静态分析器...在这种情况下,它取决于代码,你通常可以通过docstrings上的类型信息来增强它:http://pydev.org/manual_adv_type_hints.html或者通过做一些“如果错误:'并编写一些只能用于静态分析的代码......