簡體   English   中英

例如Numpy,SciPy或Matplotlib的代碼完成在Eclipse PyDev中不起作用

[英]Code-Completion for e.g. Numpy, SciPy or Matplotlib does not work in Eclipse PyDev

無法在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”下,“最小字符數...”設置為1,“Preferences-> PyDev-> Editor-> Code Completion(ctx insensitive and tokens)”“Number of 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)。

謝謝你的任何建議...... :)

此致,卡斯滕

我認為這是因為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”標志。 看看這個頁面。

請注意,在最新的PyDev版本中,您現在可以讓PyDev通過文檔了解類型(不需要斷言isinstance)。

有關詳細信息,請參閱: http//pydev.org/manual_adv_type_hints.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM