3

在 Ubuntu 12.4 或 11.4 下的 Eclipse/PyDev 中,无法完成代码完成工作,例如 SciPy、Numpy 或 Matplotlib。在最新版本(2.6)中尝试使用 Eclipse Helios 和 Juno,PyDev。

代码完成确实适用于例如内部项目引用或内置。

添加了“Preferences->Pydev->Interpreter - Python->Libraries”的路径,并将 scipy、numpy 和 matplotlib 添加到“Forced Builtins”。在“Preferences->PyDev->Editor->Code Completion”“Minimum Number of chars...”设置为1,“Preferences->PyDev->Editor->Code Completion (ctx insensitive and tokens)”“Number of chars chars for..." 都设置为 2。

导入和代码完成在 ipython shell 中工作,所以我认为它一定是 PyDev 中的东西......

示例代码:

import numpy as np
myArr = np.array([1,2,3])
myArr.set#<hit CTRL-SPACE for completion>

代码完成在这里不建议任何数组方法(setasflat、setfield、setflags)。

感谢您的任何建议... :)

问候, 卡斯滕

4

2 回答 2

3

I think this happens because pydev couldn't figure out what type is returned by the np.array method. If your code is long and you want code completion many times, perhaps you could "tell" pydev what is myArr's type. Try using assert:

import numpy as np
myArr = np.array([1,2,3])
assert isinstance(myArr, np.ndarray)
myArr.set#<hit CTRL-SPACE for completion>

After that code completion will always work for the myArr variable. Later you can delete or comment the assert line or use the "-O" flag with the python interpreter. Look at this page.

于 2012-07-24T22:32:19.863 回答
1

请注意,在最新的 PyDev 版本中,您现在可以通过文档让 PyDev 知道类型(无需断言 isinstance)。

有关详细信息,请参见:http ://pydev.org/manual_adv_type_hints.html 。

于 2013-09-06T17:24:40.173 回答