web-dev-qa-db-ja.com

$ PYTHONPATHとsys.pathが一致していないようです

フォルダーをsys.pathに永続的に追加したいのですが、機能しません。

私のDebianStretchで、実行すると:

$ echo $PYTHONPATH

空に見えます

同時に、sys.pathの内容を印刷すると、$PATH(および明らかに$PYTHONPATH)に含まれているものと同じではない10の異なるパスがあります。どのように説明できますか?

(フレームワーク用のvirtualenvを作成する必要がありましたが、現在使用しているとは思わないため、おそらく関連性はありませんが、その概念に慣れていないため、何かが足りない可能性があります)

また、.bashrcを変更して$PYTHONPATHへのパスを追加しようとしたので、次の行がわかりました。

PYTHONPATH=$PYTHONPATH:~/bin 

再起動後は機能します。つまり、$ PYTHONPATHにはそれが含まれていますが、sys.pathは何も変更されていません。

また、$ env | grep ^PYTHONは何も返しません。

では、sys.pathはどのように入力され、フォルダを永続的に追加するにはどうすればよいですか?

1
snoob dogg

sys.path in Pythonは、「モジュールの検索パスを指定する文字列のリストです。環境変数PYTHONPATHから初期化され、インストールに依存するデフォルトが追加されます。」(から取得) Pythonオンラインドキュメント )。

にとって sys.pathPYTHONPATHの影響を受けるには、後者は環境変数である必要があります。それが環境変数ではなく、単なるシェル変数である場合、それはpythonインタープリターによって表示されません。値を設定した後、または同時にエクスポートすることにより、環境変数に変換します。

export PYTHONPATH=/some/path:/goes/here
3
Kusalananda