无法从Fish shell为虚拟环境执行一些python命令

时间:2016-09-22 08:22:41

标签: python shell fish

我在MacOS Sierra上并通过brew安装了python3和python。使用命令python3 -m venv my_venv,我为python3创建了一个虚拟环境。然后,我尝试在. bin/activate.fish内使用my_venv激活它。但是我得到了例外

$(...) is not supported. In fish, please use '(automate_stuff)'.
bin/activate.fish (line 58):         if test -n "$(automate_stuff) "
                                                 ^
from sourcing file bin/activate.fish
    called on line 175 of file /usr/local/Cellar/fish/HEAD/share/fish/config.fish

in function '.'
    called on standard input

source: Error while reading file 'bin/activate.fish'

此外,我尝试使用命令(来自my_venv内)my_venv. bin/pip -m pip install flake8安装flake8。

也失败了
Missing end to balance this if statement
bin/pip (line 9): if __name__ == '__main__':
              ^
from sourcing file bin/pip
    called on line 175 of file /usr/local/Cellar/fish/HEAD/share/fish/config.fish

in function '.'
    called on standard input

source: Error while reading file 'bin/pip'

发生了什么,我该如何解决?重复一遍,我将Fish Shell作为我的默认shell运行。

1 个答案:

答案 0 :(得分:0)

  

。 bin / pip -m pip install flake8。

在这里,您正在寻找(.命令是source的别名)带有鱼的pip脚本。由于pip是一个python脚本,因此会出现语法错误。

您想要./bin/pip

  

$(...)不受支持。在鱼类中,请使用'(automate_stuff)'。

这是virtualenv中的错误 - $()不是有效的鱼语法。