Eclipse PyDev自动导入故障

1 投票
2 回答
2428 浏览
提问于 2025-04-17 09:16

我最近在尝试使用pydev,已经有几天了,我真的很喜欢这个工具。但是,如果我开启了自动导入的选项,每当我想用 len(something) 时,它就会自动导入一些不必要的内容,比如 from test.test_iterlen import len(还有很多其他的)。

另一方面,如果我完全关闭自动导入功能,每次我输入 len(something) 时,它就会在当前行之前插入空白行,这让我觉得非常烦人。

你知道这可能是什么原因吗?要么是导入不必要的内容,要么就是插入空行的问题。

 Eclipse: Indigo Service Release 1
 Eclipse platform: 3.7.1 
 PyDev: 2.3.0.2011121518 
 Python: 3.2.2

非常感谢!

2 个回答

0

应该会出现一个弹出列表,里面有代码补全的选项。你可以向下滚动,找到 len(object) 这个选项。在 Python 2.7 中,我无法重现你所说的那种奇怪情况。可能是 Python 3 有些奇怪的行为。

1

自动导入功能是通过一种叫做“代码补全(不考虑上下文)”的方式来工作的。在这里,主要的问题是你在请求补全“len”这个名字,而它在很多地方都有定义,结果你可能会选择到其他地方的定义。

所以,我觉得在你的情况下,如果你通常是为短名字进行补全,可能更好的方法是增加显示补全的字符数量(默认情况下,至少需要2个字符才能显示补全)。

你可以在以下位置进行设置:

窗口 > 偏好设置 > pydev > 编辑器 > 代码补全(不考虑上下文和常用标记)。

然后把字符数量调高一些(因为你可能是用2个字符请求补全“len”,你可以把这个请求改成3个,或者4个字符)。

另一种可能的方法是把“len”放到“常用标记”的列表里(在同一个偏好设置页面),这样在你输入的时候就会自动显示这个补全,你只需要选择它,而不需要实际请求补全。

至于你提到的在关闭自动导入时出现的问题,我没有复现这个情况(也就是说:没有添加任何空行),所以如果你能把这个问题作为bug报告到PyDev的bug追踪系统,并提供更详细的说明(比如:源文件和复现步骤),那就太好了。

撰写回答