我正在努力让virtualenv与鱼壳一起工作。我安装了virtualenv,它可以正常使用bash和zsh。但是,运行以下命令将返回fish: Unknown command 'source'
:
$ source ~/path/to/bin/activate
有谁知道如何让virtualenv和鱼壳一起工作。提前谢谢。
答案 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)
答案 2 :(得分:4)
您可以使用virtualfish。
Ian Bicking的virtualenv的鱼壳包装,有点松散 基于Doug Hellman为Bourne兼容的virtualenvwrapper 壳。
答案 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为我工作