名前空間衝突させて10分くらいハマった話
なんか読み込みがおかしい
import ssh
...
...
conn = ssh.SSHClient()
...
...
いろいろあって paramiko だけじゃなくて ssh モジュール単体で同じ事をやろうとした。しかしなぜか ssh モジュールがうまくうごかない。しかたないから dir(ssh) とか see(ssh) とかしてみたら、どうやら自分自身が参照されてるらしい。
なんでかなーってハマってたけどわかった、ファイル名をてきとうに ssh.py にしてしまってた。
つまり ssh.py のなかで import ssh してたら、自分自身を参照しちゃうよね、そうだねって話。なので rename して解決……しなかった
.pyc 消しましょう
ssh.pyc が残ってました。消しました。ちゃんと動きました。
結論
こんなところで名前空間でハマるとは思わなかった。まあ、すぐに気付けてよかった。