どのように私のpythonを使用して、私のpythonのパスを見つけるのですか?

StackOverflow https://stackoverflow.com/questions/1489599

質問

どのように私はPythonスクリプト(または対話型シェル)の中から、私のシステムのPYTHONPATH変数にリストされているディレクトリを見つけるのですか?

役に立ちましたか?

解決

sys.pathは、あなたのPYTHONPATH環境変数に特異的にない項目が含まれる場合があります。変数を直接照会するには、使用します:

import os
try:
    user_paths = os.environ['PYTHONPATH'].split(os.pathsep)
except KeyError:
    user_paths = []

他のヒント

あなたはおそらくも、このことを望みます

import sys
print(sys.path)

または端末から1つのライナーとして:

python -c "import sys; print('\n'.join(sys.path))"

他の答えを編集することができないようです。それはWindowsのみであるという点で軽微なエラーが発生しました。より一般的な解決策は以下の通りos.sep使用することです。

のsys.pathは、あなたのPYTHONPATH環境変数に特異的にない項目が含まれる場合があります。変数を直接照会するには、使用します:

import os
os.environ['PYTHONPATH'].split(os.pathsep)

PYTHONPATHは、その値はディレクトリのリストである環境変数です。一度設定すると、他のSTDと一緒に、インポートされたモジュールを検索するためのPythonで使用されています。 Pythonの「のsys.path」に記載されているとサードパーティのライブラリディレクトリ。

他の環境変数として、あなたが見る、シェルでまたは〜/ .bashrcの中でそれをエクスポートするか<のhref = "https://bic-berkeley.github.io/psych-214-fall-2016/using_pythonpathここを「のrel = "nofollowをnoreferrer"> .HTML。 下図のようにあなたは、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

THEN =>

結果
/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を設定するには、をhref="https://stackoverflow.com/questions/39682688/how-to-set-pythonpath-to-multiple-folders">参照してください。

[]実行時ではなくはos.environ経由)デルまたは(削除)(1がsys.path.insertを介して検索パスを追加または削除することもできます。 例:

>>> 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はのsys.pathにインポートモジュールのPythonの検索パス(複数可)を指定する1つの方法です。また、PYTHONPATHの助けなしのsys.pathに直接リスト操作を適用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top