1. コマンドラインと環境
***********************

CPython インタプリタはコマンドラインと環境を読み取って様々な設定を行な
います。

**CPython implementation detail:** 他の実装のコマンドラインスキームは
CPython とは異なります。さらなる情報は 別のPythonの実装 を参照してくだ
さい。


1.1. コマンドライン
===================

Python を起動するとき、以下のうち任意のオプションを指定できます:

   python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]

もちろん、もっとも一般的な利用方法は、単純にスクリプトを起動することで
す:

   python myscript.py


1.1.1. インターフェイスオプション
---------------------------------

インタプリタのインターフェイスは UNIX シェルのものに似ていますが、より
多くの起動方法を提供しています:

* tty デバイスに接続された標準入力とともに起動された場合、 EOF (end-
  of-file 文字。 UNIX では "Ctrl-D" で、Windows では "Ctrl-Z, Enter"
  で入力可能) を受け取るまで、コマンドを受け取り、それを実行します。

* ファイル名引数か、標準入力としてファイルを渡された場合、そのファイ
  ル からスクリプトを読み込んで実行します。

* ディレクトリ名を引数に受け取った場合、そのディレクトリから適切な名
  前 のスクリプトファイルを読み込んで実行します。

* "-c コマンド" オプションを利用して起動された場合、 *コマンド* とし
  て 渡された Python の文を実行します。 *コマンド* の部分には改行で区
  切ら れた複数行を指定することもできます。行の先頭の空白文字は Python
  文の 重要要素です！

* "-m モジュール名" として Python モジュールパスにあるモジュールを指
  定 された場合、そのモジュールをスクリプトとして実行します。

非インタラクティブモードでは、入力の全体が実行前にパースされます。

インタプリタによって消費されるオプションリストが終了したあと、継続する
全ての引数は "sys.argv" に渡ります。 -- ただし、添字 0 の先頭要素
("sys.argv[0]") はプログラムのソース自体を示す文字列です。

-c <command>

   *command* 内の Python コードを実行します。 *command* は改行によって
   区切られた1行以上の文です。通常のモジュールのコードと同じく、行頭の
   空白文字は意味を持ちます。

   このオプションが指定された場合、 "sys.argv" の最初の要素は ""-c""
   になり、カレントディレクトリが "sys.path" の先頭に追加されます (そ
   のディレクトリにあるモジュールをトップレベルモジュールとして import
   出来るようになります)。

-m <module-name>

   "sys.path" から指定されたモジュール名のモジュールを探し、その内容を
   "__main__" モジュールとして実行します。

   引数は *module* 名なので、拡張子 (".py") を含めてはいけません。モジ
   ュール名は有効な Python の絶対モジュール名 (absolute module name)
   であるべきですが、実装がそれを強制しているとは限りません (例えば、
   ハイフンを名前に含める事を許可するかもしれません)。

   パッケージ名 (名前空間パッケージも含む) でも構いません。通常のモジ
   ュールの代わりにパッケージ名が与えられた場合、インタプリタは
   "<pkg>.__main__" を main モジュールとして実行します。この挙動はスク
   リプト引数として渡されたディレクトリや zip ファイルをインタプリタが
   処理するのと意図的に同じにしています。

   注釈: このオプションは組み込みモジュールや C で書かれた拡張モジュ
     ールに は利用できません。 Python モジュールファイルを持っていない
     からで す。しかし、コンパイル済みのモジュールは、たとえ元のソース
     ファイ ルがなくても利用可能です。

   このオプションが指定された場合、 "sys.argv" の最初の要素はモジュー
   ルファイルのフルパスになります (モジュールファイルを検索している間
   、最初の要素は ""-m"" に設定されます)。 "-c" オプションと同様に、カ
   レントディレクトリが "sys.path" の先頭に追加されます。

   多くの標準ライブラリモジュールにはスクリプトとして実行された時のた
   めのコードがあります。例えば、 "timeit" モジュールは次のように実行
   可能です:

      python -mtimeit -s 'setup here' 'benchmarked code here'
      python -mtimeit -h # for details

   参考:

     "runpy.run_module()"
        Python コードで直接使える等価な機能

     **PEP 338** - モジュールをスクリプトとして実行する

   バージョン 3.1 で変更: "__main__" サブモジュールを実行するパッケー
   ジ名が提供されました。

   バージョン 3.4 で変更: 名前空間パッケージもサポートされました

-

   標準入力 ("sys.stdin") からコマンドを読み込みます。標準入力がターミ
   ナルだった場合、暗黙的に "-i" オプションが指定されます。

   このオプションが指定された場合、 "sys.argv" の最初の要素は ""-"" で
   、カレントディレクトリが "sys.path" の先頭に追加されます。

<script>

   *script* 内の Python コードを実行します。 *script* は、Python ファ
   イル、 "__main__.py" ファイルがあるディレクトリ、 "__main__.py" フ
   ァイルがある zip ファイルのいずれかの、ファイルシステム上の (絶対ま
   たは相対) パスでなければなりません。

   このオプションが指定された場合、 "sys.argv" の最初の要素はコマンド
   ラインで指定されたスクリプト名になります。

   スクリプト名が Python ファイルを直接指定していた場合、そのファイル
   を含むディレクトリが "sys.path" の先頭に追加され、そのファイルは
   "__main__" モジュールとして実行されます。

   スクリプト名がディレクトリか zip ファイルを指定していた場合、スクリ
   プト名が "sys.path" に追加され、その中の "__main__.py" ファイルが
   "__main__" モジュールとして実行されます。

   参考:

     "runpy.run_path()"
        Python コードで直接使える等価な機能

インターフェイスオプションが与えられなかった場合、"-i" が暗黙的に指定
され、"sys.argv[0]" が空の文字列 ("""") になり、 現在のディレクトリが
"sys.path" の先頭に追加されます。また、利用可能であればタブ補完と履歴
編集が自動的に有効かされます (readline の設定 を参照してください)。

参考: インタプリタを起動する

バージョン 3.4 で変更: タブ補完と履歴の編集が自動的に有効化されます。


1.1.2. 一般オプション
---------------------

-?
-h
--help

   全コマンドラインオプションの短い説明を出力します。

-V
--version

   Python のバージョン番号を表示して終了します。出力の例:

      Python 3.6.0b2+

   2つ指定すると、次のようにより多くのビルドの情報を表示します:

      Python 3.6.0b2+ (3.6:84a3c5003510+, Oct 26 2016, 02:33:55)
      [GCC 6.2.0 20161005]

   バージョン 3.6 で追加: "-VV" オプション。


1.1.3. その他のオプション
-------------------------

-b

   "bytes" または "bytearray" を "str" と比較した場合、または、
   "bytes" を "int" と比較した場合に警告を発生させます。このオプション
   を2度指定した場合 ("-bb") は、エラーを発生させます。

   バージョン 3.5 で変更: "bytes" と "int" の比較に影響します。

-B

   与えられた場合、Python はソースモジュールのインポート時に ".pyc" フ
   ァイルの作成を試みません。 "PYTHONDONTWRITEBYTECODE" 環境変数も参照
   してください。

-d

   パーサーのデバッグ出力を有効にします。(エキスパート専用です。コンパ
   イルオプションに依存します)。 "PYTHONDEBUG" も参照してください。

-E

   全ての "PYTHON*" 環境変数を無視します。例えば、 "PYTHONPATH" や
   "PYTHONHOME" などです。

-i

   最初の引数にスクリプトが指定された場合や "-c" オプションが利用され
   た場合、 "sys.stdin" がターミナルに出力されない場合も含めて、スクリ
   プトかコマンドを実行した後にインタラクティブモードに入ります。
   "PYTHONSTARTUP" ファイルは読み込みません。

   このオプションはグローバル変数や、スクリプトが例外を発生させるとき
   にそのスタックトレースを調べるのに便利です。 "PYTHONINSPECT" も参照
   してください。

-I

   Python を隔離モードで実行します。-E と -s も暗黙的に指定されます。
   隔離モードでは "sys.path" はスクリプトのディレクトリやユーザのサイ
   トパッケージのディレクトリを含みません。全 "PYTHON*" 環境変数も無視
   されます。ユーザが悪意のあるコードを注入するのを防ぐために更なる制
   限が課されるかもしれません。

   バージョン 3.4 で追加.

-O

   Remove assert statements and any code conditional on the value of
   "__debug__".  Augment the filename for compiled (*bytecode*) files
   by adding ".opt-1" before the ".pyc" extension (see **PEP 488**).
   See also "PYTHONOPTIMIZE".

   バージョン 3.5 で変更: **PEP 488** に従って ".pyc" ファイル名を変更
   します。

-OO

   Do "-O" and also discard docstrings.  Augment the filename for
   compiled (*bytecode*) files by adding ".opt-2" before the ".pyc"
   extension (see **PEP 488**).

   バージョン 3.5 で変更: **PEP 488** に従って ".pyc" ファイル名を変更
   します。

-q

   インタラクティブモードでも copyright とバージョンのメッセージを表示
   しません。

   バージョン 3.2 で追加.

-R

   互換性のために残されています。Python 3.3 以降ではデフォルトでハッシ
   ュランダム化されます。

   以前のバージョンの Python では、このオプションはハッシュのランダム
   化を有効にします。これにより、 str, bytes, datetime 型の
   "__hash__()" 値が予測不可能な乱数で "塩漬け" されます。ハッシュ値は
   各 Python プロセスでは固定ですが、 Python を繰り返し再実行した場合
   は別の予測不能な値になります。

   ハッシュのランダム化は、dict の生成コストが最悪の O(n^2) になるよう
   に注意深く選ばれた入力値を与えることによる DoS 攻撃への防御策として
   提供されています。詳細は
   http://www.ocert.org/advisories/ocert-2011-003.html を参照してくだ
   さい。

   "PYTHONHASHSEED" によってハッシュシードの固定値を秘密にすることが出
   来ます。

   バージョン 3.2.3 で追加.

-s

   "user site-packages directory" を "sys.path" に追加しません。

   参考: **PEP 370** -- ユーザごとの "site-packages" ディレクトリ

-S

   "site" モジュールの import と、そのモジュールが行なっていた site ご
   との "sys.path" への操作を無効にします。後に "site" を明示的に
   import しても、これらの操作は実行されません (実行したい場合は、
   "site.main()" を呼び出してください)。

-u

   標準出力と標準エラー出力のストリームのバイナリーレイヤー ("buffer"
   属性として利用可能) がバッファされないよう強制します。それでもテキ
   スト I/O レイヤーは、コンソールに出力する場合はラインバッファされ、
   日対話的なファイルにリダイレクトされた場合はブロックバッファされま
   す。

   "PYTHONUNBUFFERED" も参照してください。

-v

   モジュールが初期化されるたびに、それがどこ(ファイル名やビルトインモ
   ジュール) からロードされたのかを示すメッセージを出力します。 二重に
   指定された場合("-vv")は、モジュールを検索するときにチェックされた各
   ファイルに対してメッセージを出力します。また、終了時のモジュールク
   リーンアップに関する情報も提供します。 "PYTHONVERBOSE" も参照してく
   ださい。

-W arg

   警告制御。 Python の警告機構はデフォルトでは警告メッセージを
   "sys.stderr" に表示します。典型的な警告メッセージは次の書式で表示さ
   れます。

      file:line: category: message

   デフォルトでは、各警告は発生したソース行ごとに一度だけ表示されます
   。このオプションは、警告をどれくらいの頻度で表示するかを制御します
   。

   複数の "-W" オプションを指定することができます。警告が1つ以上のオプ
   ションとマッチしたときは、最後にマッチしたオプションのアクションが
   有効になります。不正な "-W" オプションは無視されます (最初の警告が
   発生したときに、不正なオプションに対する警告メッセージが表示されま
   す)。

   警告は Python プログラムの中から "warnings" モジュールを利用して制
   御することができます。

   引数の最もシンプルな形は、以下のアクションの文字列 (あるいはそのユ
   ニークな短縮形) です:

   "ignore"
      全ての警告を無視する。

   "default"
      明示的にデフォルトの動作(ソース行ごとに1度警告を表示する)を要求
      する。

   "all"
      警告が発生するたびに表示する (これは、ループの中などで同じソース
      行により繰り返し警告が発生された場合に、大量のメッセージを表示し
      ます)。

   "module"
      各モジュールで最初に発生した警告を表示する。

   "once"
      プログラムで最初に発生した警告だけを表示する。

   "error"
      警告メッセージを表示する代わりに例外を発生させる。

   引数の完全形は次のようになります:

      action:message:category:module:line

   ここで、 *action* は上で説明されたものですが、残りのフィールドにマ
   ッチしたメッセージにだけ適用されます。空のフィールドは全ての値にマ
   ッチします。空のフィールドの後ろは除外されます。 *message* フィール
   ドは表示される警告メッセージの先頭に、大文字小文字を無視してマッチ
   します。 *category* フィールドは警告カテゴリにマッチします。これは
   クラス名でなければなりません。 *category* のマッチは、メッセージの
   実際の警告カテゴリーが指定された警告カテゴリーのサブクラスかどうか
   をチェックします。完全なクラス名を指定しなければなりません。
   *module* フィールドは、(完全正規形(fully-qualified)の) モジュール名
   に対してマッチします。このマッチは大文字小文字を区別します。 *line*
   フィールドは行番号にマッチします。 0 は全ての行番号にマッチし、省略
   した時と同じです。

   参考: "warnings" -- 警告モジュール

     **PEP 230** -- Warning framework

     "PYTHONWARNINGS"

-x

   Unix 以外の形式の "#!cmd" を使うために、ソースの最初の行をスキップ
   します。これは、DOS専用のハックのみを目的としています。

-X

   様々な実装固有のオプションのために予約されています。現在のところ
   CPython は以下の値を定義しています:

   * "-X faulthandler" は "faulthandler" を有効化します;

   * "-X showrefcount" to output the total reference count and
     number of used memory blocks when the program finishes or after
     each statement in the interactive interpreter. This only works on
     debug builds.

   * "-X tracemalloc" は "tracemalloc" モジュールを用いて Python の
     メ モリ割り当てのトレースを開始します。デフォルトでは最新のフレー
     ム のみがトレースのトレースバックに格納されます。最大 *NFRAME* フ
     レ ームのトレースバックで トレースを開始するには "-X
     tracemalloc=NFRAME" を使用してください。詳細は
     "tracemalloc.start()" を参照してください。

   * "-X showalloccount" to output the total count of allocated
     objects for each type when the program finishes. This only works
     when Python was built with "COUNT_ALLOCS" defined.

   任意の値を渡し、 "sys._xoptions" 辞書から取り出すことも出来ます。

   バージョン 3.2 で変更: "-X" オプションが追加されました。

   バージョン 3.3 で追加: "-X faulthandler" オプション。

   バージョン 3.4 で追加: "-X showrefcount" および "-X tracemalloc" オ
   プション。

   バージョン 3.6 で追加: "-X showalloccount" オプション


1.1.4. 使うべきでないオプション
-------------------------------

-J

   Jython のために予約されています。


1.2. 環境変数
=============

以下の環境変数は Python の挙動に影響します。環境変数は -E や -I 以外の
コマンドラインスイッチの前に処理されます。衝突したときにコマンドライン
スイッチが環境変数をオーバーライドするのは慣例です。

PYTHONHOME

   標準 Python ライブラリの場所を変更します。デフォルトでは、ライブラ
   リは "*prefix*/lib/python*version*" と
   "*exec_prefix*/lib/python*version*" から検索されます。ここで、
   "*prefix*" と "*exec_prefix*" はインストール依存のディレクトリで、
   両方共デフォルトでは "/usr/local" です。

   "PYTHONHOME" が1つのディレクトリに設定されている場合、その値は
   "*prefix*" と "*exec_prefix*" の両方を置き換えます。それらに別々の
   値を指定したい場合は、 "PYTHONHOME" を "*prefix*:*exec_prefix*" の
   ように指定します。

PYTHONPATH

   モジュールファイルのデフォルトの検索パスを追加します。この環境変数
   のフォーマットはシェルの "PATH" と同じで、 "os.pathsep" (Unix なら
   コロン、 Windows ならセミコロン) で区切られた1つ以上のディレクトリ
   パスです。存在しないディレクトリは警告なしに無視されます。

   通常のディレクトリに加えて、 "PYTHONPATH" のエントリはピュアPython
   モジュール(ソース形式でもコンパイルされた形式でも) を含む zip ファ
   イルを参照することもできます。拡張モジュールは zip ファイルの中から
   import することはできません。

   デフォルトの検索パスはインストール依存ですが、通常は
   "*prefix*/lib/python*version*" で始まります。 (上の "PYTHONHOME" を
   参照してください。) これは *常に* "PYTHONPATH" に追加されます。

   上の インターフェイスオプション で説明されているように、追加の検索
   パスディレクトリが "PYTHONPATH" の手前に追加されます。検索パスは
   Python プログラムから "sys.path" 変数として操作することができます。

PYTHONSTARTUP

   この変数が読み込み可能なファイル名の場合、対話モードで最初のプロン
   プトが表示される前にそのファイルの Python コマンドが実行されます。
   ファイル内で定義されているオブジェクトやインポートされたオブジェク
   トを対話セッションで修飾せずに使用するために、ファイルは対話的なコ
   マンドと同じ名前空間で実行されます。 このファイル内のプロンプト
   "sys.ps1" や "sys.ps2"、ならびにフック "sys.__interactivehook__" を
   変更することも出来ます。

PYTHONOPTIMIZE

   この変数に空でない文字列を設定するのは "-O" オプションを指定するの
   と等価です。整数を設定した場合、 "-O" を複数回指定したのと同じにな
   ります。

PYTHONDEBUG

   この変数に空でない文字列を設定するのは "-d" オプションを指定するの
   と等価です。整数を指定した場合、 "-d" を複数回指定したのと同じにな
   ります。

PYTHONINSPECT

   この変数に空でない文字列を設定するのは "-i" オプションを指定するの
   と等価です。

   この変数は Python コードから "os.environ" を使って変更して、プログ
   ラム終了時のインスペクトモードを強制することができます。

PYTHONUNBUFFERED

   この変数に空でない文字列を設定するのは "-u" オプションを指定するの
   と等価です。

PYTHONVERBOSE

   この変数に空でない文字列を設定するのは "-v" オプションを指定するの
   と等価です。整数を設定した場合、 "-v" を複数回指定したのと同じにな
   ります。

PYTHONCASEOK

   この環境変数が設定されている場合、 Python は "import" 文で大文字/小
   文字を区別しません。 これは Windows と OS X でのみ動作します。

PYTHONDONTWRITEBYTECODE

   この変数に空でない文字列を設定した場合、 Python はソースモジュール
   のインポート時に ".pyc" ファイルを作成しようとはしなくなります。
   "-B" オプションを指定するのと等価です。

PYTHONHASHSEED

   この変数が設定されていない場合や "random" に設定された場合、乱数値
   が str、bytes ならびに datetime オブジェクトのハッシュのシードに使
   われます。

   "PYTHONHASHSEED" が整数値に設定された場合、その値はハッシュランダム
   化が扱う型の hash() 生成の固定シードに使われます。

   その目的は再現性のあるハッシュを可能にすることです。例えばインター
   プリタ自身の自己テストや Python プロセスのクラスタでハッシュ値を共
   有するのに用います。

   整数は [0,4294967295] の十進数でなければなりません。0 を指定すると
   ハッシュランダム化は無効化されます。

   バージョン 3.2.3 で追加.

PYTHONIOENCODING

   この変数がインタープリタ実行前に設定されていた場合、
   "encodingname:errorhandler" という文法で標準入力/標準出力/標準エラ
   ー出力のエンコードを上書きします。 "encodingname" と
   ":errorhandler" の部分はどちらも任意で、"str.encode()" と同じ意味を
   持ちます。

   標準エラー出力の場合、":errorhandler" の部分は無視されます; ハンド
   ラは常に "'backslashreplace'" です。

   バージョン 3.4 で変更: "encodingname" の部分が任意になりました。

   バージョン 3.6 で変更: On Windows, the encoding specified by this
   variable is ignored for interactive console buffers unless
   "PYTHONLEGACYWINDOWSSTDIO" is also specified. Files and pipes
   redirected through the standard streams are not affected.

PYTHONNOUSERSITE

   この環境変数が設定されている場合、 Python は "ユーザ site-packages
   ディレクトリ" を "sys.path" に追加しません。

   参考: **PEP 370** -- ユーザごとの "site-packages" ディレクトリ

PYTHONUSERBASE

   "user base directory" を設定します。これは "python setup.py install
   --user" 時に "user site-packages directory" と Distutils
   installation paths のパスを計算するのに使われます。

   参考: **PEP 370** -- ユーザごとの "site-packages" ディレクトリ

PYTHONEXECUTABLE

   この環境変数が設定された場合、 "sys.argv[0]" に、C ランタイムから取
   得した値の代わりにこの環境変数の値が設定されます。Mac OS X でのみ動
   作します。

PYTHONWARNINGS

   これは "-W" オプションと等価です。カンマ区切りの文字列を設定するの
   は "-W" を複数回指定するのと等価です。

PYTHONFAULTHANDLER

   この環境変数が空でない文字列に設定された場合、起動時に
   "faulthandler.enable()"  が呼び出されます。Python のトレースバック
   をダンプするために "SIGSEGV"、"SIGFPE"、"SIGABRT"、"SIGBUS" および
   "SIGILL" シグナルのハンドラを導入します。"-X" "faulthandler" オプシ
   ョンと等価です。

   バージョン 3.3 で追加.

PYTHONTRACEMALLOC

   この環境変数が空でない文字列に設定された場合、"tracemalloc" モジュ
   ールを利用して Python のメモリ割り当てのトレースを開始します。変数
   の値はトレース時のトレースバックで保持されるフレームの最大数です。
   例えば "PYTHONTRACEMALLOC=1" の場合、最新のフレームのみを保持します
   。詳細は "tracemalloc.start()" を参照してください、

   バージョン 3.4 で追加.

PYTHONASYNCIODEBUG

   この環境変数が空でない文字列に設定された場合、"asyncio" モジュール
   の デバッグモード が有効化されます。

   バージョン 3.4 で追加.

PYTHONMALLOC

   Set the Python memory allocators and/or install debug hooks.

   Set the family of memory allocators used by Python:

   * "malloc": use the "malloc()" function of the C library for all
     domains ("PYMEM_DOMAIN_RAW", "PYMEM_DOMAIN_MEM",
     "PYMEM_DOMAIN_OBJ").

   * "pymalloc": use the pymalloc allocator for "PYMEM_DOMAIN_MEM"
     and "PYMEM_DOMAIN_OBJ" domains and use the "malloc()" function
     for the "PYMEM_DOMAIN_RAW" domain.

   Install debug hooks:

   * "debug": install debug hooks on top of the default memory
     allocator

   * "malloc_debug": same as "malloc" but also install debug hooks

   * "pymalloc_debug": same as "pymalloc" but also install debug
     hooks

   When Python is compiled in release mode, the default is "pymalloc".
   When compiled in debug mode, the default is "pymalloc_debug" and
   the debug hooks are used automatically.

   If Python is configured without "pymalloc" support, "pymalloc" and
   "pymalloc_debug" are not available, the default is "malloc" in
   release mode and "malloc_debug" in debug mode.

   See the "PyMem_SetupDebugHooks()" function for debug hooks on
   Python memory allocators.

   バージョン 3.6 で追加.

PYTHONMALLOCSTATS

   If set to a non-empty string, Python will print statistics of the
   pymalloc memory allocator every time a new pymalloc object arena is
   created, and on shutdown.

   This variable is ignored if the "PYTHONMALLOC" environment variable
   is used to force the "malloc()" allocator of the C library, or if
   Python is configured without "pymalloc" support.

   バージョン 3.6 で変更: This variable can now also be used on Python
   compiled in release mode. It now has no effect if set to an empty
   string.

PYTHONLEGACYWINDOWSFSENCODING

   If set to a non-empty string, the default filesystem encoding and
   errors mode will revert to their pre-3.6 values of 'mbcs' and
   'replace', respectively. Otherwise, the new defaults 'utf-8' and
   'surrogatepass' are used.

   This may also be enabled at runtime with
   "sys._enablelegacywindowsfsencoding()".

   Availability: Windows

   バージョン 3.6 で追加: より詳しくは **PEP 529** を参照をしてくださ
   い。

PYTHONLEGACYWINDOWSSTDIO

   If set to a non-empty string, does not use the new console reader
   and writer. This means that Unicode characters will be encoded
   according to the active console code page, rather than using utf-8.

   This variable is ignored if the standard streams are redirected (to
   files or pipes) rather than referring to console buffers.

   Availability: Windows

   バージョン 3.6 で追加.


1.2.1. デバッグモード変数
-------------------------

以下の環境変数は、"--with-pydebug" ビルドオプションを指定して構成され
たデバッグビルド版の Python でのみ効果があります。

PYTHONTHREADDEBUG

   設定された場合、 Python はスレッドデバッグ情報を表示します。

PYTHONDUMPREFS

   設定された場合、 Python はインタプリタのシャットダウン後に残ってい
   るオブジェクトと参照カウントをダンプします。
