web-dev-qa-db-ja.com

pipenv環境を非アクティブ化する

Pipenv環境を無効にするにはどうすればよいですか?

他のツールを使用すると、source deactivate、しかし、それはここでは影響しません。

環境を作成します。

pipenv --three

環境をアクティブにします。

source $(pipenv --venv)/bin/activate

しかし、無効にする方法は?

10
tim_xyz

ウィリアムズの答えをもう少し詳しく述べると、 予想されるワークフローpipenv Shellを使用してvirtualenvに入ることです。この方法でvirtualenvをアクティブにすると、コンソール出力はexitを使用するようになります:

スポーン環境シェル(/ bin/zsh)。終了するには「exit」を使用します。

deactivateを使用してvirtualenvを終了しようとすると、pipenvは混乱した状態のままになります。これは、起動されたシェルインスタンスにいるのに、アクティブ化されたvirtualenvにいないためです。

18
ButtaKnife

シェルコマンドexitも使用できます。

deactivateを使用すると、エラーが残ります。

Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.
No action taken to avoid nested environments.

exitを使用した後、pipenvインスタンスを正常に切り替えることができました。これはバグである可能性が高いため、おそらく報告する必要があります。

9
Williams

最初に「非アクティブ化」してから「終了」すると、仮想環境から抜け出します。今のところ、これは私のために働いた。

0

投稿者 の観点からの回答については、このトピックを確認してください。

https://github.com/pypa/pipenv/issues/84#issuecomment-27505694

ネタバレ :

pipenvは、現在のシェルセッションのパスを変更する代わりに、virtualenvパスで新しいシェルセッションを開始します。そのため、非アクティブ化が機能しません。シェルセッションを終了する必要があります。 exitコマンドまたはCTRL-dがトリックを行います。