2017-03-23 9 views
17

"pip install --user ..."という目的は何ですか? <code>pip install --help</code>から

--user  Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on 
      Windows. (See the Python documentation for site.USER_BASE for full details.) 

site.USER_BASEのドキュメントは、私は理解していない面白い* NIXの主題の恐ろしいワームホールです。

--userの目的は何ですか?パッケージを~/.local/にインポートするのはなぜ重要ですか?なぜ私の$ PATHのどこかに実行可能ファイルを置くのはなぜですか?

+3

「私はサイトのPythonドキュメントをチェックする必要はありません」 - しかし、あなたはあなたのためにこれを行うことを期待?それはこのサイトの人々には非常に敬意を払っているようには思えません。 – Shadow

+0

ドキュメントをチェックしないとあなたを落としていましたが、あなたは 'pip install --help' 'site.USER_BASE'文書がどこにつながるかについてあなたは正しいです。私は 'site.USER_BASE'文書をチェックしたのではなく、' pip install --help'の後であなたを止めてしまったことを本当に責められません。 – user2357112

+1

フレーズには "落ち着いてください"という言葉はあまりありませんでした。 – user2357112

答えて

27

pipデフォルトでは、Pythonパッケージをシステムディレクトリにインストールします(/usr/local/lib/python3.4など)。これにはrootアクセスが必要です。

--userは、代わりに特別な権限を必要とせずに、ホームディレクトリにpipインストールパッケージを作成します。

+0

ありがとうございます。それは理にかなっている。しかし、 '--user'のポイントは、パッケージをrootとして実行しないことを確認することですか? (私はWireshark/kismet/burpsuiteのような、グループアクセスポリシーを設定するオプションを想像しているので、すべてのプログラム機能をrootとして実行することはできません。 user'オプションはroot権限を持たないインストールを意味していますか?その場合、なぜ 'sudo pip install foo_package'を使用しないのですか?私は前にピップ経由でインストールするためにroot-privelagesを必要としなかった。 –

+3

@Rob Truxal。私は、このパッケージは他のユーザーには見えないと言います。パッケージの古いバージョンや新しいバージョンが必要なのかもしれませんが、システムにインストールすると、あなたの仕事相手を荒らします。 – NDEthos

+0

oh! '--user'パラメータは、ユーザ分離に関するものです。それは意味をなさないことだ。ありがとう@NDEthos! –

1

MAC OSでは、--userフラグを使用する理由は、OSが依存するライブラリを壊さないようにするためです。 conservative多くのMAC OSユーザーにとって、sudoが必要なコマンドでpipをインストールまたは更新することを避けることです。したがって、これは/usr/local/binにインストール含まれています...

参考:Neovim用のPythonをインストールする(https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim

私はないんだけど、すべて/usr/local/binにインストールするという事実は与えられたMAC上のリスクがある理由を明確にシステムは、/Library/Frameworks//usr/binのpythonバイナリのみに依存しています。上記のように、/usr/local/binにインストールするとsudoが必要となるため、システムライブラリで重大な間違いを犯すことになります。したがって、~/.local/binにインストールすることは、このリスクを回避するための確実な方法です。

参考:それはへrootからディレクトリの所有者を変更することは理にかなっている場合、Mac上でのpythonを使用して(https://docs.python.org/2/using/mac.html

最後に、程度に/usr/local/binにパッケージをインストールする利点があり、私は疑問に思いますuserこれにより、sudoを使用する必要がなくなり、システム依存の変更を防ぐことができます。 *これは、過去の(サーバとして)Unixシステムがどのようにしてより頻繁に使用されていたかのセキュリティのデフォルトですか?または、少なくとも、サーバーをホストしていないMACユーザーのための良い方法はありますか?

注:Macのシステムインテグリティ保護(SIP)機能は、システム依存ライブラリの変更をユーザーが保護しているようです。

- E