@showyouの日記とhama/donsuke/yuka_の成長記録

 | 

2008-10-24

[][]import文が不安定要因? 08:36 import文が不安定要因? - @showyouの日記とhama/donsuke/yuka_の成長記録 を含むブックマーク はてなブックマーク - import文が不安定要因? - @showyouの日記とhama/donsuke/yuka_の成長記録

これまで「crochet 落ちる」がもはや枕詞みたいになっていた。

その原因を探るため、各所にprint文を入れるという愚行を行った。デバッガ使えという話もあるんだけど、pdbやWinpdbを使っても、デバッガごと強制終了してデバッグができなかった。

でそのprint文を入れた結果なんだけど、落ちたのはこんな位置だった。ちなみにここでは省略しているが、startThreadは定期的(1分くらいおき)に呼ばれる。

import hoge
import thread


def startThread():
    args()
    thread.start_new_thread(func, args)

def func():
    print("func-1")
    funcB():
    print("func-2")

def funcB():
    import foo
    ...
    print("end funcB")

これのprint("end func")の後に落ちる。つまりfuncBが終わって戻るとこ・・どうやって対策しろと!?

---

調べてたらこんなページを発見

Issue 1596321: KeyError at exit after 'import threading' in other thread - Python tracker
http://bugs.python.org/issue1596321

念のためと思い、"import foo"をはじめの方に持っていくと・・なんか落ちなくなったっぽい。もしかしてpythonではimportをはじめに書くのが鉄則?

 |