私が質問した後Pythonパッケージを処理するためのPipとパッケージマネージャの比較venv
特にモジュールの仮想環境について多くを学びました。最近はほぼパッケージだけをインストールします。pip
~へ仮想環境私はシステム全体にPythonパッケージをほとんどインストールしません。
pip install
しかし、私がいつも恐れていることの1つは、コマンドがアクティブになっていないことに気づかずにコマンドを実行できることですvenv
。
pipをブラックリストに載せる方法はありますか?ただ私がいないときvenv
?
答え1
グローバルオプションがありますrequire-virtualenv
動作するには仮想環境が必要ですpip
。
この機能を実装するさまざまな方法(1つを選択してください):
~/.config/pip/pip.conf
たとえば、または次の設定オプション(私が好むもの)として/etc/pip.conf
:[global] require-virtualenv = True
これを実行することもできます注文する構成ファイルを変更/生成します。
pip config set global.require-virtualenv True
環境変数を使用して
PIP_REQUIRE_VIRTUALENV
valueに設定しますtrue
。--require-virtualenv
コマンドラインオプションを直接使用してください。
virtualenvの外部にパッケージをインストールしようとすると、次のエラーが表示されます。
ERROR: Could not find an activated virtualenv (required).
pipをアップグレードするか、以前のPythonバージョンにvirtualenvをインストールするためにこのオプションを一時的にオーバーライドする必要がある場合は、コマンドの前にPIP_REQUIRE_VIRTUALENV=false
.
注: 以前の pip バージョン (< 22.0) では、このオプションは出力とドキュメントに欠けているように見えますが、--help
私はうまくいきます。最新バージョンとして20.3.4を使用してPython 2.7.xでテストされました。
注:公開アカウント 704(作成時の草案)は提案です。「[...] Python 3.13+では、pipなどのパッケージインストーラにはデフォルトで仮想環境が必要です。」。
答え2
シェルエイリアスを使用してpip
仮想環境の外部を引き継ぐことができます。
alias 'pip=cowsay "You are not in a virtual environment"'
virtualenv起動ファイル(例:venvを入力したときに取得するファイル):
unalias 'pip'