103

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

$ source ~/path/to/bin/activate

有谁知道如何让 virtualenv 和 fish shell 一起工作?

4

8 回答 8

226

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

于 2012-06-09T16:23:54.790 回答
37

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

所以你必须这样做:

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

于 2018-12-25T13:33:03.337 回答
23

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

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

vf activate <my_env>
于 2013-12-29T20:49:48.720 回答
6

您可以使用虚拟鱼。

Ian Bicking 的 virtualenv 的 Fish Shell 包装器,有点松散地基于 Doug Hellman 的用于 Bourne 兼容 shell 的 virtualenvwrapper。

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

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

于 2015-01-14T16:12:09.827 回答
2

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

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

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

或者:我是一名前 Bash 用户,开始使用 Fish 并怀念 Doug Hellman 的virtualenvwrapper,所以我今天才开始研究一个名为 virtualfish 的替代品——它有一些你可能会觉得有用的方便快捷方式,尽管它远不及完整维维。

于 2012-07-01T13:25:26.733 回答
2

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

要使用 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]
于 2017-08-23T03:38:15.983 回答
0

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

于 2021-08-11T11:32:53.700 回答
0

您可以使用命令-set VIRTUAL_ENV 'path to the virtual env directory' 示例 -set VIRTUAL_ENV '/home/aman/Desktop/test/venv'

于 2021-12-02T10:58:37.630 回答