2013-07-21 138 views
11

現在、Webページを更新する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

elifpathNoneであり、None == ''Falseを返しますので、残りが実行されます。そして、後方にはparams.dirNoneです。どのようにNoneが来るのを見るためにparams.dirが生成されたコードをチェックする必要があります。

+0

問題は最後の1つのエントリにあります。 'params.dir'または' params.file'は 'posixpath.py' stdlibモジュールを指しているので、最後のエントリではありません。 –

+0

はい、あなたは正しいです。私は編集されます。 – zhangyangyu

+0

基本的に、 'params.dir'または' params.file'のどちらかが 'None'を返すと言っていますか? –

関連する問題