web-dev-qa-db-ja.com

virtualenvをフィッシュシェルで動作させる方法

私はフィッシュシェルでvirtualenvを動作させようとしています。 virtualenvをインストールしましたが、bashとzshで正常に動作します。ただし、次のコマンドを実行すると、fish: Unknown command 'source'が返されます。

$ source ~/path/to/bin/activate

誰もがvirtualenvと魚のシェルを一緒に動作させる方法を知っていますか?前もって感謝します。

58
drbunsen

Virtualenvを使用するためにアクティブ化する必要はありません。便利です。 virtualenvを直接使用できます。

virtualenv venv
./venv/bin/pip install foo

あなたは魚を使って試しましたか:

. venv/bin/activate.fish

おそらくbashほど広く使用されていないため、問題が発生する可能性があります。コミット履歴を見ると、最近の修正が示されています。

https://github.com/pypa/virtualenv/blob/master/virtualenv_embedded/activate.fish

131
user146416

これも使用できます: https://github.com/adambrenecki/virtualfish

次のように入力して、virtualenvをアクティブにできます。

vf activate <my_env>
19
devict

Virtualfishを使用できます。

Ian Bickingのvirtualenvのフィッシュシェルラッパー。Bourne互換シェル用のDoug Hellmanのvirtualenvwrapperにやや大まかに基づいています。

ソース: https://github.com/adambrenecki/virtualfish

ドキュメント: http://virtualfish.readthedocs.org/en/latest/

4
Arie

_activate.fish_を使用できない場合は、binディレクトリをPATHに追加するだけです。

_set -gx PATH /path/to/virtualenv/bin $PATH
_

それはほとんどすべて_activate.fish_が(まあ、まったくそうではありませんが、PYTHONHOMEも解除します(とにかく試してみたときにYMMVを事前に設定していませんでした);そして、_fish_Prompt_)。

あるいは、私はFishを使い始めてDoug Hellmanのvirtualenvwrapperを見逃している元Bashユーザーなので、今日作業を始めました virtualfishと呼ばれる代替 -いくつかの便利な機能があります便利かもしれませんが、VEWほど完全ではありません。

2
Leigh Brenecki

Virtualenvの場合、fishのbinディレクトリには、.fish拡張子。

だからあなたはする必要があります:

$ source ~/path/to/bin/activate.fish

1
Sangeet

(このスレッドは閉じられているようですが、解決策が見つかりました:)

Venv環境で新しいフィッシュシェルに入るには:

begin; set -lx PATH (realpath ./venv)/bin $PATH; fish; end

venvディレクトリが./venvの場合。

無効にするには、ctrl-dまたはexitのみを使用します。


子シェルを呼び出さない別のソリューション。

Venv環境を作成して入力します。

python3 -m venv ./venv
set -lx PATH (realpath ./venv)/bin $PATH

環境を終了します。

set -lx PATH $PATH[2..-1]
0