16.16。 付録
16.1。 インタラクティブモード
16.1.1。 エラー処理
エラーが発生すると、インタプリタはエラーメッセージとスタックトレースを出力します。 インタラクティブモードでは、プライマリプロンプトに戻ります。 入力がファイルからのものである場合、スタックトレースを出力した後、ゼロ以外の終了ステータスで終了します。 ( try ステートメントの except 句によって処理される例外は、このコンテキストではエラーではありません。)一部のエラーは無条件に致命的であり、ゼロ以外の終了で終了します。 これは、内部の不整合やメモリ不足の場合に当てはまります。 すべてのエラーメッセージは、標準のエラーストリームに書き込まれます。 実行されたコマンドからの通常の出力は、標準出力に書き込まれます。
プライマリまたはセカンダリプロンプトに割り込み文字(通常は Control-C または Delete )を入力すると、入力がキャンセルされ、プライマリプロンプトに戻ります。 1 コマンドの実行中に割り込みを入力すると、 KeyboardInterrupt 例外が発生します。これは、 try ステートメントで処理できます。
16.1.2。 実行可能なPythonスクリプト
BSDのUnixシステムでは、Pythonスクリプトは、シェルスクリプトのように、次の行を入力することで直接実行可能にすることができます。
#!/usr/bin/env python3.5
(インタプリタがユーザーの PATH
にあると仮定します)、スクリプトの先頭にあり、ファイルに実行可能モードを与えます。 #!
は、ファイルの最初の2文字である必要があります。 一部のプラットフォームでは、この最初の行は、Windows('\r\n'
)の行末ではなく、Unixスタイルの行末('\n'
)で終了する必要があります。 Pythonでコメントを開始するには、ハッシュまたはポンド文字'#'
が使用されることに注意してください。
chmod コマンドを使用して、スクリプトに実行可能モードまたはアクセス許可を与えることができます。
$ chmod +x myscript.py
Windowsシステムでは、「実行可能モード」の概念はありません。 Pythonインストーラーは、.py
ファイルをpython.exe
に自動的に関連付けるため、Pythonファイルをダブルクリックするとスクリプトとして実行されます。 拡張子は.pyw
にすることもできます。その場合、通常表示されるコンソールウィンドウは抑制されます。
16.1.3。 インタラクティブスタートアップファイル
Pythonをインタラクティブに使用する場合、インタプリタが起動するたびにいくつかの標準コマンドを実行すると便利なことがよくあります。 これを行うには、 PYTHONSTARTUP という名前の環境変数を起動コマンドを含むファイルの名前に設定します。 これは、Unixシェルの.profile
機能に似ています。
このファイルは、Pythonがスクリプトからコマンドを読み取るときや、/dev/tty
がコマンドの明示的なソースとして指定されているとき(それ以外の場合は対話型セッションのように動作する)ではなく、対話型セッションでのみ読み取られます。 インタラクティブコマンドが実行されるのと同じ名前空間で実行されるため、定義またはインポートするオブジェクトは、インタラクティブセッションで修飾なしで使用できます。 このファイルのプロンプトsys.ps1
およびsys.ps2
を変更することもできます。
現在のディレクトリから追加のスタートアップファイルを読み取りたい場合は、if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())
のようなコードを使用して、グローバルスタートアップファイルでこれをプログラムできます。 スクリプトでスタートアップファイルを使用する場合は、スクリプトで明示的にこれを行う必要があります。
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
with open(filename) as fobj:
startup_file = fobj.read()
exec(startup_file)
16.1.4。 カスタマイズモジュール
Pythonには、カスタマイズできる2つのフックsitecustomize
とusercustomize
が用意されています。 それがどのように機能するかを確認するには、最初にユーザーのsite-packagesディレクトリの場所を見つける必要があります。 Pythonを起動し、次のコードを実行します。
>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.5/site-packages'
これで、そのディレクトリにusercustomize.py
という名前のファイルを作成し、必要なものをそのディレクトリに置くことができます。 自動インポートを無効にする -s オプションで開始しない限り、Pythonのすべての呼び出しに影響します。
sitecustomize
も同じように機能しますが、通常はコンピューターの管理者によってグローバルsite-packagesディレクトリに作成され、usercustomize
の前にインポートされます。 詳細については、 site モジュールのドキュメントを参照してください。
脚注
- 1
- GNU Readlineパッケージに問題があると、これが妨げられる可能性があります。