如何让Virtualenv与鱼壳一起使用


78

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

$ source ~/path/to/bin/activate

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


2
我已经开始在我的项目中使用github.com/adambrenecki/virtualfish效果很好。

Answers:


181

您无需激活即可使用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
谢谢。我曾经尝试过active.fish,但是我希望将virtualenv更新到最新版本以使其正常运行。
drbunsen 2012年

如果您遇到特定的错误,请在github.com/pypa/virtualenv中归档问题跟踪工具

2
完美对我的作品

@李我遇到这个问题。paste.ubuntu.com/25955380什么是“。” 这里指的是?
Abhishek Bhatia

哦,是的,我每次使用时都会输入完整路径。听起来不错。
Alper


11

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

因此,您将必须执行以下操作:

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



2

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

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

这几乎完成了所有activate.fish工作(嗯,不完全是,它也PYTHONHOME未设置,(无论如何我在尝试之前都没有设置过,YMMV);它试图弄乱您的fish_prompt)。

另外,我是Bash的前用户,开始使用Fish,却错过了Doug Hellman's的经验virtualenvwrapper,所以我今天才开始研究一个名为virtualfish的替代产品-它有一些便捷的捷径,您可能会发现它有用,尽管还远远不及完善VEW。


2

(此线程似乎即将关闭,但我找到了解决方法:)

要通过venv进入新的鱼壳:

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

venv目录为时./venv

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


另一个解决方案,不调用子外壳。

制作并输入虚拟环境:

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

退出环境:

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

谢谢 !实际上,这对我来说是最简单的解决方案。
达米安(Damien)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.