2014-05-06 116 views
0

我寫使用Python 2.2.5 Spyder的腳本與Windows 7,蟒蛇2.7蟒蛇Spyder的不進口numpy的

開始的時候我已經嘗試了所有的進口方式:

from numpy import * 

import numpy 

import numpy as np 

而且,對於每一個的,我編譯

QR10 = numpy.array(QR10,dtype=float) 
QR20 = numpy.array(QR20,dtype=float) 
QR11 = numpy.array(QR11,dtype=float) 
QR21 = numpy.array(QR21,dtype=float) 

enter image description here

然而,當,即使有這樣的30個錯誤使用numpy的,我得到一個錯誤的每一行,如果我運行的腳本工作... 。

對此有何幫助?

+0

正如您可能已經知道的那樣,該腳本只能與第二個選項一起使用。 你的意思是「劇本如果我運行它的作品」?你的意思是在Spyder裏面,還是從外面跑?也許Spyder正在使用另一版本的解釋器,例如Python 3? 另外,你有沒有用標準方法安裝numpy?如果沒有,也許你必須在「工具」菜單中調整PYTHONPATH。 – jdehesa

+0

讓我們來看看....腳本也可以用選項3來執行'np.array ... etc',(我已經測試過並且不工作),Spyder自帶了Python(x,y)包一切(python 2.7,numpy,matplotlib等)都已安裝。當我提到腳本工作時,我想通過點擊「運行」來在Spyder內部進行編譯,所以即使在編譯時出現了30多個錯誤,它仍然可以從頭到尾運行,不會產生任何錯誤,即使在標記過的線上行走作爲上圖中的「錯誤」。這是奇怪的... – codeKiller

回答

4

Python不能實際上是編譯。 Spyder僅使用Pylint執行靜態代碼分析。取決於正在使用的Pylint的版本,它可能是一個錯誤或不可檢測的情況。

例如,import語句(或獲取它的路徑)可能在條件塊內,直到運行時才能解析該條件塊。鑑於您使用的是Spyder,它也可能是您將import語句直接放在控制檯或單獨的文件中,然後使用腳本中導入的模塊。

你可以試試,看看你是否收到同樣的錯誤使用類似下面的腳本:

import numpy 

QR10 = [1, 2, 3] 
QR20 = [1, 2, 3] 
QR11 = [1, 2, 3] 
QR21 = [1, 2, 3] 

QR10 = numpy.array(QR10,dtype=float) 
QR20 = numpy.array(QR20,dtype=float) 
QR11 = numpy.array(QR11,dtype=float) 
QR21 = numpy.array(QR21,dtype=float) 

你不應該在這裏看到E0602。然而,有趣的是,您可能會收到[E1101] Module 'numpy' has no 'array' member,因爲事實證明numpy會對成員進行一些動態定義,所以Pylint無法瞭解它(您可能會看到here已經實際解決了一個錯誤。

故事的寓意是Pylint的錯誤不應該讓你在夜間醒來。很高興看到這個報告,但是如果你確信你的代碼有意義並且運行正確,你可以忽略它們 - 雖然試圖知道它爲什麼給出錯誤總是一個很好的練習。

+0

感謝您的回答javidcf,我會用您建議的簡單腳本進行測試。然而,由於我是編碼和編碼,每次我使用numpy時,我都會得到一個新的錯誤...所以我很累,現在每次嘗試「編譯」時都會看到70多個錯誤....但是好的 – codeKiller

+2

@ user2919052如果您真的厭倦了這個問題,最簡單的解決方法是在分析中禁用這些錯誤:#pylint:disable = E0602或#pylint:disable = E1101';但是請注意,這將在腳本中禁用此類型的所有錯誤。 – jdehesa

+2

jdehesa引用的問題已解決並關閉。將astroid更新到最新版本(截至目前的1.2.1版),pylint不會再檢測到這種誤報。只是爲了澄清,儘管在pylint問題(也在這裏)中有所有評論,但這與成員的動態定義無關。該問題與使用從__future__'導入的absolute_import有關 – zeehio

0
import numpy as np 

然後用

QR10 = np.array(QR10,dtype=float) # instead of numpy.array 
+0

'進口numpy爲np',然後'QR10 = np.array(QR10,dtype = float)'也嘗試過,並得到錯誤....是什麼與Spyder? – codeKiller

+0

嗯......你有沒有嘗試重新啓動內核,並重新開始? –

+1

已嘗試重新啓動整個該死的電腦.... – codeKiller