追記
コメントで教えてもらった。カレントディレクトリにあるファイルも import の対象になるので、 crypt.py 自身を import してしまい、二度実行されるように見えていた。やはりファイル名に注意すべき、ということ。
特に面白くもない、 crypt で適当にランダムな文字列を作るプログラム。これを crypt.py という名前で保存して実行すると、不思議なことがおこった。
#!python import sys, crypt for i, v in enumerate(sys.argv): print i, v, crypt.crypt(v,v)
カレントディレクトリに crypt.pyc というコンパイル済みファイル?らしきものが作られる。そしてエラー。 import crypt とかをコメントアウトして .pyc を消して再び実行すると、なぜかループが二回実行される(for i in sys.argv: で引数が hoge moe なら hoe moe hoge moe と二回ずつ表示されてしまう)。
何が何だかわからなかったけど、保存するファイル名を hoge.py などに変えたら再現しなくなった。
以上の経験から、 Python では標準モジュールと同じ名前の .py ファイルを作ってそのファイル名と同じモジュールを import して実行するといろいろマズイことがおこる、と理解した。ファイル名をかえるか、拡張子をなくせば回避できる。