2013-07-21 23 views
11

Obecnie pracuję nad skryptem w języku Python, który aktualizuje stronę internetową. Ale uruchomienie głównego skryptu generuje ten błąd:AttributeError: Obiekt "NoneType" nie ma atrybutu "kończy się"

<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' 

Nie mogę pominąć żadnego kodu, ponieważ jest on zbyt długi. Próbuję zrozumieć, gdzie znajduje się błąd lub jaka część kodu wywołuje AttributeError. Czy możesz mi pomóc ???

Odpowiedz

7

path w elif JEST None i None == '' powraca False tak będzie wykonał pozostają. I odwrotnie, params.dir jest None. Musisz sprawdzić kod wygenerowany przez params.dir, aby zobaczyć, jak powstaje None.

+0

Problem jest w ostatniej, ale jednej pozycji: albo "params.dir" lub "params.file" jest "None", a nie ostatni wpis, ponieważ wskazuje na moduł posixpath.py' stdlib. –

+0

Tak, masz rację. Zmienię. – zhangyangyu

+0

Więc zasadniczo mówisz, że 'params.dir' lub' params.file' zwracają 'None'? –

Powiązane problemy