2013-07-21 1 views
11

Je travaille actuellement sur un script Python qui met à jour une page Web. Mais l'exécution du script principal génère cette erreur:AttributeError: l'objet 'NoneType' n'a pas d'attribut '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' 

Je ne peux pas dépasser le code car il est trop long. Ce que j'essaie de comprendre, c'est où se trouve l'erreur ou quelle partie du code déclenche l'attribut AttributeError. Pouvez-vous s'il vous plaît m'aider ???

Répondre

7

Le path dans le elif est un None et None == '' retours False de sorte que le restent seront exécutés. Et en arrière, le params.dir est un None. Vous devez vérifier votre code où le params.dir généré pour voir comment le None viennent.

+0

Le problème est dans la dernière entrée: soit 'params.dir' ou' params.file' est 'None', pas la dernière entrée puisqu'elle pointe vers le module' posixpath.py' stdlib. –

+0

Oui, vous avez raison. Je vais éditer. – zhangyangyu

+0

Vous dites donc que soit 'params.dir' ou' params.file' renvoie un 'None'? –

Questions connexes