Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 例如Numpy、SciPy或Matplotlib的代码完成在Eclipse PyDev中不起作用_Python_Autocomplete_Numpy_Pydev_Code Completion - Fatal编程技术网

Python 例如Numpy、SciPy或Matplotlib的代码完成在Eclipse 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->编辑器->代

在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中的某个东西

示例代码:

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的说法。这只是一个解决办法,确实有点难看。但这是个方便的…谢谢法比奥!很棒的功能!