我正在尝试让 virtualenv 与鱼壳一起使用。我安装了 virtualenv,它与 bash 和 zsh 一起工作得很好。但是,运行以下命令会返回fish: Unknown command 'source'
:
$ source ~/path/to/bin/activate
有谁知道如何让 virtualenv 和 fish shell 一起工作?
我正在尝试让 virtualenv 与鱼壳一起使用。我安装了 virtualenv,它与 bash 和 zsh 一起工作得很好。但是,运行以下命令会返回fish: Unknown command 'source'
:
$ source ~/path/to/bin/activate
有谁知道如何让 virtualenv 和 fish shell 一起工作?
您无需激活即可使用 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
对于 virtualenv,fish 在 bin 目录下有一个单独的激活文件,.fish
扩展名为。
所以你必须这样做:
$ source ~/path/to/bin/activate.fish
你也可以使用这个:https ://github.com/adambrenecki/virtualfish
它允许您通过键入以下内容来激活 virtualenv:
vf activate <my_env>
您可以使用虚拟鱼。
Ian Bicking 的 virtualenv 的 Fish Shell 包装器,有点松散地基于 Doug Hellman 的用于 Bourne 兼容 shell 的 virtualenvwrapper。
如果你不能使用activate.fish
,你可以将bin
目录添加到你的PATH
:
set -gx PATH /path/to/virtualenv/bin $PATH
这几乎是所有的activate.fish
(嗯,不完全是,它也取消PYTHONHOME
设置,(当我尝试它时没有预先设置,YMMV);它试图弄乱你的fish_prompt
)。
或者:我是一名前 Bash 用户,开始使用 Fish 并怀念 Doug Hellman 的virtualenvwrapper
,所以我今天才开始研究一个名为 virtualfish 的替代品——它有一些你可能会觉得有用的方便快捷方式,尽管它远不及完整维维。
(这个线程似乎接近关闭,但我找到了解决方案:)
要使用 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]
如果它是一个 env 文件,试试这个.env/bin/activate.fish 确保你的 env 文件在你的项目文件中,在我的例子中它是一个 django 项目。Tt为我工作
您可以使用命令-set VIRTUAL_ENV 'path to the virtual env directory'
示例 -set VIRTUAL_ENV '/home/aman/Desktop/test/venv'