そのため、Base64 エンコーダー/デコーダー スクリプトを直接ダブルクリックすると、エラーが発生して開いたり閉じたりします。幸運にも、閉じる前に画面を印刷しました。これがエラーです。

それは一体何の意味ですか?プログラムは IDLE で完全に実行され、エラーは発生しません。
これは私のコードです、見てください!
そのため、Base64 エンコーダー/デコーダー スクリプトを直接ダブルクリックすると、エラーが発生して開いたり閉じたりします。幸運にも、閉じる前に画面を印刷しました。これがエラーです。

それは一体何の意味ですか?プログラムは IDLE で完全に実行され、エラーは発生しません。
これは私のコードです、見てください!
エラーは、入力した文字列を使用inputしようとしevalているようです。これは、inputpython2.x の動作です。おそらく使用したいでしょうraw_input。python3.x では、raw_input名前が変更されinput、以前のinput関数が削除されました。
同じスクリプトで python2.x と python3.x をサポートする必要があるこのような状況で使用する傾向がある 1 つのトリックは、raw_inputどこでも使用し、スクリプトの先頭で次のようにすることです。
try:
raw_input # No error on python2.x
except NameError:
raw_input = input # python3.x