2012-06-08 33 views
46

我正在試圖讓virtualenv與魚殼一起工作。我安裝了virtualenv,它可以很好地使用bash和zsh。然而,運行以下命令返回fish: Unknown command 'source'如何讓virtualenv與魚殼一起工作

$ source ~/path/to/bin/activate 

有誰知道怎麼弄的virtualenv和魚貝一起工作。提前致謝。

+2

我已經開始使用https://github.com/adambrenecki/virtualfish都非常好,我的項目。 – 2012-07-26 11:12:30

回答

81

你不需要激活使用virtualenv這是一個方便。你可以只用直接的virtualenv:

virtualenv venv 
./venv/bin/pip install foo 

你有沒有使用從魚的嘗試:

. venv/bin/activate.fish 

這可能是沒有被廣泛使用的bash所以可能有問題 - 看提交歷史顯示了最新修補程序:

https://github.com/pypa/virtualenv/commits/develop/virtualenv_embedded/activate.fish

+0

謝謝。我曾嘗試'active.fish',但我需要將virtualenv更新到最新版本才能使用它。 – drbunsen

+0

如果您遇到特定的錯誤,請在http://github.com/pypa/virtualenv上發現問題跟蹤器 – 2012-06-14 14:46:54

+1

完美適用於我 – Lee

2

如果您不能使用activate.fish,你可以添加bin目錄到PATH

set -gx PATH /path/to/virtualenv/bin $PATH 

這幾乎是所有activate.fish呢(當然,不是相當,它也會清除PYTHONHOME,(這是沒有事先設定當我嘗試也無妨,因人而異);它試圖弄亂你的fish_prompt)。

或者:我是誰在使用魚開始,錯過了前猛砸用戶道格·海爾曼的virtualenvwrapper,所以我今天剛開始工作a replacement called virtualfish - 它有一些方便的快捷方式,你可能會發現有用的,雖然它遠不及完成爲VEW。

0

(此線程似乎接近關閉,但我找到了解決辦法:)

輸入與VENV新殼魚envrionment:

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

當venv目錄是./venv

要取消激活,只需按Ctrl-d或exit


另一種解決方案,它不調用子shell。

製作並輸入VENV管環境:從環境不受

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

退出:

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