1

次のコードを確認してください。

UnboundLocalError: "local variable 'os' referenced before assignment"if ステートメントでエラーが発生します。

そこにpdbトレースを設定し、osモジュールをチェックアウトしようとしました。

import os
import pdb

... 

pdb.set_trace()

if not os.path.exists(path_to_temp):
    os.makedirs(path_to_temp)

pdbでの私の奇妙な相互作用は次のとおりです。

(Pdb) os.path.exists(path_to_temp)
False
(Pdb)  not os.path.exists(path_to_temp)
True
(Pdb) os.path
<module 'posixpath' from '/usr/lib/python2.7/posixpath.pyc'>
(Pdb) os
<module 'os' from '/usr/lib/python2.7/os.pyc'>
(Pdb) n
UnboundLocalError: "local variable 'os' referenced before assignment"

私も...

編集:ああ、恥ずかしい。import osこのifステートメントの後にもどこかにローカルがありました!!

4

1 に答える 1

2

import osこのifステートメントの後にローカルosがあり、その関数のスコープの属性に影響を与えていたことがわかりました。

于 2013-06-28T23:25:48.087 に答える