2012-10-10 32 views
3

我使用pysvn作爲Eclipse PyDev項目的一部分。下面的代碼會導致PyDev的抱怨:Eclipse PyDev發現由於pysvn的動態導入而導致的不存在的錯誤

import pysvn 
pysvn.ClientError 
#  ~~~~~~~~~~~ <= Undefined variable from import: ClientError 

但它運行得很好,這一點也適用:

>>> import pysvn 
>>> pysvn.ClientError 
<class 'pysvn._pysvn_2_7.ClientError'> 

我相當肯定的原因是下面這段代碼在pysvn.py

# ... 

elif maj_min == (2,7): 
    import _pysvn_2_7 
    _pysvn = _pysvn_2_7 

# ... 

for key, value in _pysvn.__dict__.items(): 
    if not key.startswith('__'): 
     globals()[ key ] = value 

不知何故,這會拋出PyDev。 (這也難怪,我在想,難道他們做這樣?)

我知道我可以做CTRL + 和的「未定義varaible」每一次出現選擇@UndefinedVariable ,但我希望有一個更一般的解決方案。

我的問題:我如何在

1)最永久的方式解決這個問題(爲大家,不只是我)

2)最實用(對我來說)

萬一它很重要,我在Eclipse 3.7.2上使用PyDev 2.4.0.2012020116。

回答

3

您應該將其添加到強制內置插件中,如here所述。

如果還是不行,您可以通過編輯器禁用的PyDev的設置此錯誤>代碼分析>未定義

+0

添加到內置插件不能解決問題。你的第二個建議有效,但我*有興趣從合法的'Undefined variable from import'錯誤中獲取,這也會關閉它們。我寧願單獨使用'@ UndefinedVariable'關閉已知的情況,而不是完全禁用錯誤。 –

+0

有時添加到內置插件需要一些時間,通常約10-30秒。另外請注意,pydev通常只在保存後纔會重新分析代碼,因此編碼幾分鐘並給它一個機會:) – lolopop

+0

已加入窗口>首選項> PyDev>解釋器 - Python>強制Builtins>新建並鍵入'pysvn'。確定並應用並確定。更改文件並保存幾次。稍等片刻。改變更多的東西,再次保存。沒有效果。 –

相關問題