web-dev-qa-db-ja.com

pip3インストールを使用して、ローカルvsグローバル

Mysqlclientをインストールしようとしています。インターネットで検索したところ、2つのコマンドSudo pip3 install mysqlclientまたは単にpip3 install mysqlclientが見つかりました。どちらを使用する必要があり、なぜですか?

1
Sujata

Pip3コマンドでSudoを使用している場合、パッケージはすべてのユーザーがアクセスする/usr/local/bin/mysqlclientディレクトリにインストールします(つまり、グローバルにインストールします) 。一方、Sudoなしでは、~/.local/bin/mysqlclientディレクトリにインストールされ、現在のユーザーのみにアクセスします(つまり、ローカルにインストールします)。

ただし、Pythonプロジェクト用の分離された環境を作成するには、 仮想環境 を優先してください。これは、他のすべてのプロジェクトの依存関係に関係なく、各プロジェクトが独自の依存関係を持つことができることを意味します。大規模なプロジェクトに便利です。

3
finn

Sudoまたはpip3を使用したグローバルなシステム全体のPythonインストール用のものをインストールする場合は、pipまたは昇格された権限のみを使用します。それ以外の場合は、pythonパッケージをpip3 install <package>でローカルにインストールします(例:pip3 install mysqlclient)。

悪意のあるパッケージは、Pythonプログラミング言語のソフトウェアの公式サードパーティリポジトリであるPyPIで時々発見されます。 Python仮想環境を使用して、pip/pip3でインストールするパッケージを分離することをお勧めします。 virtualenvユーティリティは、仮想Pythonインスタンスを作成し、各インスタンスは独自のPython実行可能ファイルで呼び出し可能です。各インスタンスは、異なるモジュールのセットを持つことができます。仮想Pythonインスタンスも、ルートアクセスなしで作成できます。

0
karel