2013-07-21 88 views
11

我目前正在研究更新網頁的Python腳本。但運行主腳本會產生此錯誤:AttributeError:'NoneType'對象沒有屬性'endswith'

<res status='-1'><error message="'NoneType' object has no attribute 'endswith'"><![CDATA[ 
Traceback (most recent call last): 
    File "/path/to/file/ws_config.py", line XXXX, in Run 
    tests = TestList().tests 
    File "/path/to/file/ws_config.py", line XXXX, in __init__ 
    UpdateTestGroup(None), 
    File "/path/to/file/ws_config.py", line XXXX, in __init__ 
    test = CT.CurlTest(settings), 
    File "/path/to/file/config_tests.py", line XXXX, in __init__ 
    self.params.path = os.path.join('/', os.path.join(params.dir, params.file)) 
    File "/usr/lib/python2.6/posixpath.py", line 67, in join 
    elif path == '' or path.endswith('/'): 
AttributeError: 'NoneType' object has no attribute 'endswith' 

我不能過去任何代碼,因爲太長。我想了解的是錯誤所在或者代碼的哪一部分觸發了AttributeError。 你能幫我嗎?

回答

7

elif中的pathNoneNone == ''返回False所以剩餘部分將被執行。而向後,params.dirNone。您需要檢查params.dir生成的代碼,以瞭解None的來歷。

+0

問題出現在最後一個條目中:'params.dir'或'params.file'是'None',不是最後一個條目,因爲它指向'posixpath.py' stdlib模塊。 –

+0

是的,你是對的。我會編輯。 – zhangyangyu

+0

所以你基本上是說'params.dir'或'params.file'返回一個'None'? –