私が実行したとき:
echo $PYTHONPATH
コマンドラインから次の出力を取得します。
/home/nehal/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/kinetic/lib/python2.7/dist-packages:/home/nehal/anaconda3/lib/python3.6/site-packages:/home/nehal/anaconda3/lib/python3.6/dist-packages:/home/nehal/anaconda3/lib/python3.6/dist-packages:/home/nehal/anaconda3/lib/python3.6/dist-packages:/home/nehal/anaconda3/lib/python3.5/dist-packages:/home/userx/anaconda3/lib/python3.5/dist-packages:/home/userx/anaconda3/lib/python3.5/dist-packages:/home/userx/anaconda3/lib/python3.5/dist-packages
ファイルを確認してみるとセットが1つ.bashrc
だけであることがわかりました。PYTHONPATH
export PYTHONPATH="/home/nehal/anaconda3/lib/python3.6/site-packages:$PYTHONPATH"
私も確認してみましたが、.profile
どこでも見つかりません/etc/environment
でした。/etc/profile
PYTHONPATH
私の質問は、上記の追加パスがどこから来るのかです。
答え1
どのファイルが開いているかを追跡して、bashがどのファイルをインポートしているかを確認できます。
strace -e open bash -l
これにより、bashが開こうとしているすべてのファイルが印刷されます(そのほとんどは無視できるCライブラリです)。これはどこを見るべきかについてのヒントを与えるでしょう。 (Bashの「-l」オプションを使用するには、「ログイン」シェルで実行する必要があります。これにより、通常bashはより多くの起動ファイルを解析します。)
答え2
起動すると、「bash」は複数のファイルから設定をロードします。ほとんどは通常、「/ etc」ディレクトリのサブディレクトリにあります。したがって、次のコマンドを実行して「PYTHONPATH」を含むすべてのファイルを見つけます。
grep -R PYTHONPATH /etc 2>/dev/null