2012-07-21 46 views
3

无法获得代码完成功能以用于Eclipse/PyDev中的SciPy,Numpy或Matplotlib在Ubuntu 12.4或11.4下。试用Eclipse Helios和Juno,PyDev的最新版本(2.6)。Numpy,SciPy或Matplotlib在Eclipse中不起作用PyDev

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

增加了“Preferences-> Pydev-> Interpreter - Python-> Libraries”的路径,并将scipy,numpy和matplotlib添加到“Forced Builtins”中。在“首选项 - > PyDev->编辑器 - >代码完成”中,将“最小字符数...”设置为1,“Preferences-> PyDev-> Editor-> Code Completion(ctx不敏感和令牌)”“Number of为...”字符都设置为2。

导入和代码完成的作品IPython的外壳内,所以我觉得这一定有什么东西在PyDev的...

示例代码:

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

代码完成不会在此处提示任何数组方法(setasflat,setfield,setflags)。

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

问候, 卡斯滕

+0

FWIW ...使用Portable Python 2.7.3,Portable Eclipse(Indigo,3.7),我得到了同样的结果。当我输入'import nump'并按CTRL-SPACE完成时,*表示*起作用。但是'myArr.set memilanuk 2012-07-22 02:07:03

回答

3

我想这是因为PyDev的想不出用np.array方法返回什么类型。如果你的代码很长,并且你想多次执行代码,也许你可以“告诉”pydev什么是myArr的类型。尝试使用assert

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

代码建成后,将永远为myArr的变量。稍后,您可以删除或注释断言行或在Python解释器中使用“-O”标志。看看this页面。

+0

非常好,这是一个很棒的提示。 – 2012-07-24 23:46:41

+0

感谢您指出这一点。 - 之前已经看到过这个地方,我认为这是一个很好的解决方法,但它有点难看。所以我猜PyDev根本无法解决这个问题。我猜在Ipython它唯一可能的,因为数组对象已经instanciated ... – 2012-07-25 12:24:58

+1

我同意Carsten。这只是一个解决方法,它确实有点难看。但有一个方便的... – jheyse 2012-07-25 22:14:56

1

只需要注意,在最新的PyDev版本中,您现在可以让PyDev通过文档了解该类型(不需要assert isinstance)。

详情请参阅:http://pydev.org/manual_adv_type_hints.html

+0

谢谢法比奥!伟大的功能! – jheyse 2013-09-27 13:58:59