PYTHONPATHは環境変数であり、その値はディレクトリのリストです。設定すると、Pythonは他のstdとともにインポートされたモジュールを検索するために使用します。Pythonの「sys.path」にリストされているサードパーティのライブラリディレクトリ。
他の環境変数と同様に、シェルまたは〜/ .bashrcにエクスポートできます。こちらを参照してください。以下に示すように、Pythonでos.environ ['PYTHONPATH']の値をクエリできます。
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
シェルで次のように定義されています
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
その後、結果=>
/home/Documents/DjangoTutorial/mysite
['', '/home/Documents/DjangoTutorial/mysite', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
ELSE結果=>
PYTHONPATH is not defined
PYTHONPATHを複数のパスに設定するには、ここを参照してください。
実行時にsys.path.insert()、del、またはremove()を介して検索パスを追加または削除できますが、os.environ []を介してはできないことに注意してください。例:
>>> os.environ['PYTHONPATH']="$HOME/Documents/DjangoTutorial/mysite"
>>> 'PYTHONPATH' in sorted(os.environ)
True
>>> sys.path // but Not there
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>> sys.path.insert(0,os.environ['PYTHONPATH'])
>>> sys.path // It's there
['$HOME/Documents/DjangoTutorial/mysite', '', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>>
要約すると、PYTHONPATHは、インポートされたモジュールのPython検索パスをsys.pathに指定する1つの方法です。PYTHONPATHを使用せずに、リスト操作をsys.pathに直接適用することもできます。
PYTHONPATH
。sys.path
そのために使用します。