回答:
virtualenvwrapper
(melpaで)venv-workon
環境を切り替えるコマンドを提供しますが、すべてのemacsセッションでも同様です。それはeshellで動作しますvenv-initialize-eshell
:
eshellのサポートは、envv-initialize-eshellを呼び出すことでオンになります。これを実行した後、起動する新しいeshellは正しいvirtualenvにあり、インストールされた実行可能ファイルなどにアクセスできます。このモードは、bash / zshの対応物と同様に機能するさまざまなvirtualenvwrapperコマンドも提供します(以下で詳細に説明します)。対話型シェルの動作とは対照的に、EshellはEmacsと環境を共有するため、一方をアクティブ化または非アクティブ化すると、もう一方も影響を受けることに注意してください。これには、変数eshell-modify-global-environmentをtrueに設定する必要があることに注意してください。venv-initialize-eshellを実行すると、これが発生します。これでうまくいかない場合は、問題を開いてください!技術的には2つを分離することは可能ですが、異なる名前空間をハッキングする必要があります。
eshellプロンプトの変更:
Eshellプロンプトのカスタマイズ
また、現在のvirtualenvの名前をeshellプロンプトに表示させることもできます。これは非常によく似たメカニズムで実行できます。venv-current-nameをeshell-prompt-functionのどこかに含めるだけです。次に、現在のvirtualenv名とそれに続くドル記号を含むプロンプトの簡単な例を示します。
(setq eshell-prompt-function(lambda()(concat venv-current-name "$"))))
これを行う場合は、eshell-prompt-regexpも調整してください。
EmacsWikiのeshellプロンプトのカスタマイズに関する詳細。
(e)シェルで動作し、自動アクティブ化があり、モードラインに表示されます。
それとpyvenvの違いを知りたいです。
virtualenvwrapper
(melpaで)venv-workon
環境を切り替えるコマンドを提供しますが、すべてのemacsセッションでも同様です。wikemacs.org/index.php/Python#See_alsoしかし、pyvenvはより完全に見えます。