如何让virtualenv与鱼壳一起工作

我试图让virtualenv与鱼壳一起工作。 我安装了virtualenv,它可以很好的使用bash和zsh。 但是,运行以下命令返回fish: Unknown command 'source'

 $ source ~/path/to/bin/activate 

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

你不需要激活使用virtualenv这是一个方便。 你可以直接使用virtualenv:

 virtualenv venv ./venv/bin/pip install foo 

你尝试从鱼使用:

 . venv/bin/activate.fish 

它可能没有像bash那样被广泛使用,所以可能有问题 – 查看提交历史logging显示了最近的修复:

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

你也可以使用这个: https : //github.com/adambrenecki/virtualfish

它允许你通过input以下命令激活一个virtualenv:

 vf activate <my_env> 

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

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

这几乎是所有的activate.fish (不完全是,它也PYTHONHOME ,(当我尝试了YMMV的时候没有事先设置);它试图弄乱你的fish_prompt )。

或者,我是一个前Bash用户,他开始使用Fish并且错过了Doug Hellman的virtualenvwrapper ,所以我今天刚开始研究一个名为virtualfish的替代品 – 它有一些你可能会觉得有用的方便快捷键,尽pipe它还远远没有完成作为VEW。

你可以使用virtualfish。

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

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

文件: http : //virtualfish.readthedocs.org/zh/latest/

(这个线程似乎接近被closures,但我find了解决scheme:)

为了进入一个新的带有venv envrion的鱼壳:

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

当venv目录是./venv

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


另一个解决scheme,它不会调用一个子shell。

制作并input一个venv envrionment:

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

退出环境:

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