Python 例如Numpy、SciPy或Matplotlib的代码完成在Eclipse PyDev中不起作用
在Ubuntu 12.4或11.4下的Eclipse/PyDev中,无法完成SciPy、Numpy或Matplotlib等的代码。在最新版本(2.6)中尝试了Eclipse Helios和Juno、PyDev 代码完成不适用于内部项目参考或内置 添加了“首选项->Pydev->解释器-Python->库”的路径,并将scipy、numpy和matplotlib添加到“强制内置”中。在“首选项->PyDev->编辑器->代码完成”下,“最小字符数…”设置为1,“首选项->PyDev->编辑器->代码完成(ctx不敏感和令牌)”“字符数…”均设置为2 导入和代码完成在iPythonShell中工作,所以我认为它一定是PyDev中的某个东西 示例代码:Python 例如Numpy、SciPy或Matplotlib的代码完成在Eclipse PyDev中不起作用,python,autocomplete,numpy,pydev,code-completion,Python,Autocomplete,Numpy,Pydev,Code Completion,在Ubuntu 12.4或11.4下的Eclipse/PyDev中,无法完成SciPy、Numpy或Matplotlib等的代码。在最新版本(2.6)中尝试了Eclipse Helios和Juno、PyDev 代码完成不适用于内部项目参考或内置 添加了“首选项->Pydev->解释器-Python->库”的路径,并将scipy、numpy和matplotlib添加到“强制内置”中。在“首选项->PyDev->编辑器->代码完成”下,“最小字符数…”设置为1,“首选项->PyDev->编辑器->代
import numpy as np
myArr = np.array([1,2,3])
myArr.set#<hit CTRL-SPACE for completion>
将numpy导入为np
myArr=np.array([1,2,3])
myArr.set#
代码完成不建议此处使用任何数组方法(setasflat、setfield、setflags)
谢谢你的建议……:)
问候,,
Carsten我认为发生这种情况是因为pydev无法确定
np.array
方法返回的是什么类型。如果您的代码很长,并且希望多次完成代码,那么您可以“告诉”pydev myArr的类型。尝试使用断言:
import numpy as np
myArr = np.array([1,2,3])
assert isinstance(myArr, np.ndarray)
myArr.set#<hit CTRL-SPACE for completion>
将numpy导入为np
myArr=np.array([1,2,3])
断言isinstance(myArr,np.ndarray)
myArr.set#
在此之后,代码完成将始终适用于myArr
变量。稍后,您可以删除或注释断言行,或者在python解释器中使用“-O”标志。查看第页。请注意,在最新的PyDev版本中,您现在可以通过文档让PyDev知道该类型(无需assert-isinstance)
有关详细信息,请参阅。FWIW。。。使用便携式Python 2.7.3和便携式Eclipse(Indigo,3.7),我得到了同样的结果。当我输入import-nump
并点击CTRL-SPACE完成时,就可以了。但是myArr.set
不会产生任何结果…非常好,这是一个很好的提示。感谢您指出这一点。-我以前在其他地方见过这个,我认为这是一个很好的解决办法,但有点难看。所以我猜PyDev根本无法解决这个问题。我想在Ipython中这是唯一可能的,因为数组对象已经实例化了…我同意Carsten的说法。这只是一个解决办法,确实有点难看。但这是个方便的…谢谢法比奥!很棒的功能!