名前空間衝突させて10分くらいハマった話

なんか読み込みがおかしい

import ssh
...
...
conn = ssh.SSHClient()
...
...

いろいろあって paramiko だけじゃなくて ssh モジュール単体で同じ事をやろうとした。しかしなぜか ssh モジュールがうまくうごかない。しかたないから dir(ssh) とか see(ssh) とかしてみたら、どうやら自分自身が参照されてるらしい。
なんでかなーってハマってたけどわかった、ファイル名をてきとうに ssh.py にしてしまってた。
つまり ssh.py のなかで import ssh してたら、自分自身を参照しちゃうよね、そうだねって話。なので rename して解決……しなかった

.pyc 消しましょう

ssh.pyc が残ってました。消しました。ちゃんと動きました。

結論

こんなところで名前空間でハマるとは思わなかった。まあ、すぐに気付けてよかった。

広告を非表示にする