pipが〜/.local/binにパッケージをインストールするのはなぜですか?

pipが〜/.local/binにパッケージをインストールするのはなぜですか?

この「Taurus Blazemeter 'bzt'」プログラムをpipとしてインストールすると、その~/.local/bin フォルダへのインストールが完了します。

mkdir ~/bzt && cd ~/bzt
sudo apt-get install python default-jre-headless python-tk python-pip python-dev libxml2-dev libxslt-dev zlib1g-dev
sudo pip install bzt

このフォルダの目的~/.localと、このようなPythonプログラムがそこにインストールされている理由を知っている人はいますか?

答え1

簡単に言えば、これはユーザーローカルインストールを実行するときに実行可能ファイルをインストールできる~/.local/binPythonユーザースクリプトディレクトリのデフォルトです。また、ユーザーのデフォルトディレクトリのデフォルトであるpip別のサブディレクトリにファイルをインストールすることもできます。~/.local詳しくは下記をご覧ください。


これが最初の紹介だったかどうかはわかりませんが、カタログ~/.localファイルシステム階層仕様~のシステム次のサブディレクトリを定義するinitシステム~/.local

~/.local/bin

ユーザーの$ PATH検索パスに表示される必要がある実行可能ファイル。シェル呼び出しに役立たない実行可能ファイルをこのディレクトリに置かないことをお勧めします。これらのファイルは ~/.local/lib のサブディレクトリに配置する必要があります。アーキテクチャに依存するバイナリをこの場所に配置するときは注意が必要です。ホームディレクトリがアーキテクチャが異なる複数のホスト間で共有される場合、問題が発生する可能性があります。

~/.local/lib

すべてのアーキテクチャと互換性のある静的プライベートベンダーデータ。

~/.local/lib/arch-id

パブリックダイナミックライブラリを配置する場所。使用するスキーマ識別子は、マルチスキーマスキーマ指定子(タプル)リストで定義されます。

~/.local/share

フォントやアートワークなど、複数のパッケージ間で共有されるリソース。通常、このディレクトリに保存されているファイルの正確な場所と形式は、相互運用性を保証する仕様によって決まります。アプリケーションが$ XDG_DATA_HOME設定を検出した場合は、このディレクトリの代わりにここで指定されたディレクトリを使用する必要があります。

Pythonのディレクトリ採用は~/.localPython 2.6で導入されているように見え、Python Enhancement Proposal(PEP)370に文書化されています。

仕様には、Mac OS X を含む Unix システムの次の定義が含まれています。

  • ユーザーのデフォルトディレクトリ

    ~/.local

  • ユーザースクリプトディレクトリ:

    ~/.local/bin

  • ユーザーサイトディレクトリ:

    ~/.local/lib/python2.6/site-packages

  • ユーザーデータディレクトリ:

    ~/.local/lib/python2.6

これから、Pythonにはいわゆる「デフォルトのユーザーディレクトリ」という概念があり、デフォルトは次のように結論付けることができます~/.localsiteこのモジュールのPythonドキュメント。具体的には、ユーザーのデフォルトディレクトリとユーザーサイトディレクトリを決定する方法--user-base--user-siteオプションフラグの値を提供します。次のように使用できます。

user@host:~$ python -m site --user-base

/home/user/.local

user@host:~$ python -m site --user-site

/home/user/.local/lib/python2.7/site-packages

~/.local私が参照として使用したディレクトリに関してStackExchangeサイトに投稿されたいくつかの質問があります。

関連情報