24.6. IDLE¶
IDLE は Python の統合開発環境で、学習用環境です。
IDLE は次のような特徴があります:
tkinter
GUIツールキットを使って、100% ピュア Python でコーディングされています- クロスプラットホーム: Windows, Unix, Mac OS X で動作します
- コード入力、出力、エラーメッセージの色付け機能を持った Python shell (対話的インタプリタ) ウィンドウ
- 多段 Undo、 Python 対応の色づけ、自動的な字下げ、呼び出し情報の表示、自動補完、他たくさんの機能をもつマルチウィンドウ・テキストエディタ
- 任意のウィンドウ内での検索、エディタウィンドウ内での置換、複数ファイルを跨いだ検索 (grep)
- 永続的なブレイクポイント、ステップ実行、グローバルとローカル名前空間の視覚化機能を持ったデバッガ
- 設定、ブラウザ群、ほかダイアログ群
24.6.3. スタートアップとコードの実行¶
-s
オプションとともに起動すると、IDLE は環境変数 IDLESTARTUP
か PYTHONSTARTUP
で参照されているファイルを実行します。 IDLE はまず IDLESTARTUP
をチェックし、あれば参照しているファイルを実行します。 IDLESTARTUP
が無ければ、IDLE は PYTHONSTARTUP
をチェックします。これらの環境変数で参照されているファイルは、IDLE シェルでよく使う関数を置いたり、一般的なモジュールの import 文を実行するのに便利です。
加えて、Tk
もスタートアップファイルがあればそれをロードします。その Tk のファイルは無条件にロードされることに注意してください。このファイルは .Idle.py
で、ユーザーのホームディレクトリから探されます。このファイルの中の文は Tk の名前空間で実行されるので、IDLE の Python シェルで使う関数を import するのには便利ではありません。
24.6.3.1. コマンドラインの使い方¶
idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...
-c command run command in the shell window
-d enable debugger and open shell window
-e open editor window
-h print help message with legal combinations and exit
-i open shell window
-r file run file in shell window
-s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title set title of shell window
- run stdin in shell (- must be last option before args)
引数がある場合 (訳注: 以下の説明、たぶん実情に反してますが一応訳しています):
-
,-c
,-r
のどれかを使う場合、全ての引数はsys.argv[1:...]
に入り、sys.argv[0]
には''
,'-c'
,'-r'
の、与えたものが入ります。 Options ダイアログでデフォルトだったとしても Editor ウィンドウが開くことはありません。- これ以外の場合は引数は編集対象のファイルとして開かれて、
sys.argv
には IDLE そのものに渡された引数が反映されます。
24.6.3.2. IDLE とコンソールの違い¶
As much as possible, the result of executing Python code with IDLE is the
same as executing the same code in a console window. However, the different
interface and operation occasionally affect visible results. For instance,
sys.modules
starts with more entries.
IDLE はまた、 sys.stdin
, sys.stdout
, sys.stderr
を、シェルウィンドウから入力を受け取り、また出力をシェルウィンドウに送るオブジェクトと置き換えます。このウィンドウは、フォーカスを持っている間キーボードと画面をコントロールします。これは通常透過的ですが、キーボードと画面に直接アクセスする機能は動きません。もし sys
が reload(sys)
によってリセットされたら、 IDLE の変更が失われて、 input
, raw_input
, print
のようなものは正しく動きません。
IDLE の Shell では、ユーザーは完全な文を入力し、編集し、呼び戻すことができます。一度に一つきりの物理行でしか動作しないコンソールもありますが、IDLE は、 exec
を使用してそれぞれの文 (statement) を実行します。その結果、それぞれの文に対して毎回 '__builtins__'
が定義されます。
24.6.3.3. サブプロセスを起こさずに起動する¶
デフォルトでは、IDLE はユーザコードを分離されたサブプロセスで、ソケット経由で実行します。これは内部的なループバックインターフェイスを使います。この接続は外部からは見えませんし、インターネットにデータを送信したり受信したりといったことはしません。ファイアウォールソフトウェアが何か文句を言ってきても、放っておいて大丈夫です。
If the attempt to make the socket connection fails, Idle will notify you. Such failures are sometimes transient, but if persistent, the problem may be either a firewall blocking the connection or misconfiguration of a particular system. Until the problem is fixed, one can run Idle with the -n command line switch.
IDLE を -n
で開始すれば、IDLE は単独プロセス内で動作し、RPC Python 実行サーバを走らせるサブプロセスを作りません。これは、あなたのプラットフォームで Python がサブプロセスや RPC ソケットインターフェイスを作れないなら有用かもしれないです。ですけれども、このモードはユーザコードが IDLE 自身から隔離されていませんし、Run/Run Module (F5) 選択時に環境がまっさらでやり直しにもなりません。コードを変更したら影響するモジュールを reload() してやらないといけないですし、ある種のもの (from foo import baz
など) は再インポートしてやらないといけないです。これらの理由から、可能なら常にデフォルトのサブプロセスを起こすモードで IDLE を起動するのが吉です。
バージョン 3.4 で撤廃.
24.6.4. ヘルプとお好み設定¶
24.6.4.1. Additional help sources [ヘルプ参照先の追加]¶
IDLE には "Python Docs" なるメニューエントリがあります。これはチュートリアルを含む大掛かりなヘルプを開きます。これは https://docs.python.org から入手出来ます。Configure IDLE ダイアログでいつでもヘルプメニューにヘルプ参照先の URL を追加したり削除したり出来ます。詳しくは Help メニュー (Shell ウィンドウ、Editor ウィンドウ) を見てください。
24.6.4.2. Setting preferences [お好み設定]¶
The font preferences, highlighting, keys, and general preferences can be changed via Configure IDLE on the Option menu. Keys can be user defined; IDLE ships with four built-in key sets. In addition, a user can create a custom key set in the Configure IDLE dialog under the keys tab.
24.6.4.3. Extensions [拡張]¶
IDLE contains an extension facility. Preferences for extensions can be changed with Configure Extensions. See the beginning of config-extensions.def in the idlelib directory for further information. The default extensions are currently:
- FormatParagraph
- AutoExpand
- ZoomHeight
- ScriptBinding
- CallTips
- ParenMatch
- AutoComplete
- CodeContext
- RstripExtension