如何让virtualenv与鱼壳一起工作

时间:2012-06-08 21:38:44

标签: virtualenv fish

我正在努力让virtualenv与鱼壳一起工作。我安装了virtualenv,它可以正常使用bash和zsh。但是,运行以下命令将返回fish: Unknown command 'source'

$ source ~/path/to/bin/activate

有谁知道如何让virtualenv和鱼壳一起工作。提前谢谢。

7 个答案:

答案 0 :(得分:128)

您无需激活即可使用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

答案 1 :(得分:19)

您也可以使用此:https://github.com/adambrenecki/virtualfish

它允许您通过键入以下内容来激活virtualenv:

vf activate <my_env>

答案 2 :(得分:4)

您可以使用virtualfish。

  

Ian Bicking的virtualenv的鱼壳包装,有点松散   基于Doug Hellman为Bourne兼容的virtualenvwrapper   壳。

来源: https://github.com/adambrenecki/virtualfish

文档: http://virtualfish.readthedocs.org/en/latest/

答案 3 :(得分:2)

如果您无法使用activate.fish,则可以将bin目录添加到PATH

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

这几乎都是activate.fish所做的(嗯,不完全,它也取消了PYTHONHOME,(当我尝试它时,它没有预先设置,YMMV);并且它试图弄乱你的fish_prompt)。

或者:我是一名前Bash用户,他开始使用Fish并且错过了Doug Hellman的virtualenvwrapper,所以我今天才开始研究a replacement called virtualfish - 它有一些方便的快捷方式你可能会发现很有用,虽然它远没有VEW那么完整。

答案 4 :(得分:1)

对于virtualenv,fish在bin目录的扩展名为.fish的目录中有一个单独的激活文件。

因此,您必须这样做:

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

答案 5 :(得分:0)

(这个线程似乎接近关闭,但我找到了一个解决方案:)

使用venv envrionment进入一个新的鱼壳:

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

当venv目录为./venv时。

要停用,只需按ctrl-d或exit

另一种解决方案,它不会调用子shell。

制作并进入一个venv envrionment:

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

退出环境:

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

答案 6 :(得分:0)

如果它是一个 env 文件,试试这个 .env/bin/activate.fish 确保您的 env 文件在您的项目文件中,就我而言,它是一个 django 项目。 Tt为我工作