Virtualenv: activate.fish 使用不受支持的“源”命令

创建于 2016-03-18  ·  4评论  ·  资料来源: pypa/virtualenv

目前由 virtualenv 命令生成的 activate.fish 文件使用了 fish 中不存在的 'source' 命令。 这会在运行脚本时引发错误。 一个简单的解决方案是将源命令更改为 '.'

详情请见附件图片:

screen shot 2016-03-19 at 3 10 23 am
原来的错误

screen shot 2016-03-19 at 3 11 19 am
我对 activate.fish 文件所做的编辑

screen shot 2016-03-19 at 3 11 43 am
结果

最有用的评论

@sjatkins您正在采购activate脚本,专为 bash / zsh / 等设计,而不是activate.fish

所有4条评论

鱼壳网站有不同的说法。

https://fishshell.com/docs/current/commands.html#source

. (单个句点)是 source 命令的别名。 指某东西的用途 。 不赞成使用源代码,并且 . 将在未来版本的鱼中删除。

我该相信谁?

抱歉,我在阅读了鱼壳页面上的第 211 期后匆忙下结论。

显然,在issue #310 中提出了同样的问题,并在最新版本的 fish 中得到了解决

我的系统上的问题是因为 apt-get 默认只安装 fish 2.0.0 并且需要添加一个单独的存储库才能获得引入source命令的版本 (2.2.0)。 添加 PPA 存储库fish-shell/release-2并升级 fish 包修复了该问题。 非常感谢您的帮助,并对造成的混乱感到抱歉。

真的吗? 我不是 2.3.1 版的鱼,并且 virtualenv 激活文件的源不起作用。

source ~/.venvs/base/bin/activate
Unsupported use of '||'. In fish, please use 'COMMAND; or COMMAND'.
~/.venvs/base/bin/activate (line 23):     if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
                                                                ^
from sourcing file ~/.venvs/base/bin/activate
    called on standard input

source: Error while reading file '/Users/satkins/.venvs/base/bin/activate'

@sjatkins您正在采购activate脚本,专为 bash / zsh / 等设计,而不是activate.fish

此页面是否有帮助?
0 / 5 - 0 等级