使用virtualenv时出现“bash: syntax error near unexpected token `('”错误提示

3

我使用virtualenv在~/.virtualenvs中创建了一个名为“test”的Python3虚拟环境。但是,当我尝试激活它时,出现了以下错误。

bash: /home/ubuntu/.virtualenvs/test/bin/activate: line 4: syntax error near unexpected token `(' 
bash: /home/ubuntu/.virtualenvs/test/bin/activate: line 4: `deactivate () {'

我尝试在Ubuntu容器和Cloud9 IDE上使用virtualenv,但是遇到了相同的错误。


我们需要查看virtualenvs内部的代码。 - John Joe
你运行的确切命令行是什么?如果有的话,这似乎是错误的激活,或者可能是为您的 shell 引用了错误的脚本(尽管 activate 应该匹配 bash)。 - ShadowRanger
我运行了以下命令:source ~/.virtualenvs/test/bin/activate - picklu
以下是创建“test”环境的命令和相应输出: $ virtualenv ~/.virtualenvs/test 使用基础前缀'/usr' /home/ubuntu/.virtualenvs/test/bin/python3中的新Python可执行文件 同时在/home/ubuntu/.virtualenvs/test/bin/python中创建可执行文件 安装setuptools、pip、wheel...完成。 - picklu
@ShadowRanger,如果我从root运行source /home/ubuntu/.virtualenvs/test/bin/activate,它就可以工作。 - picklu
嗨@ShadowRanger和@John Joe,我已经找出问题的原因在于我的.bash_alias文件中。我曾经创建了一个别名“deactivate”来停用conda环境,但我忘记了。在我所有的ubuntu容器和电脑上,我都使用了相同的~.bash_alias文件。从.bash_alias文件中删除后,命令source ~/.virtualenvs/test/bin/activate可以正常工作。非常抱歉浪费了你们的时间。谢谢。 - picklu
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
2
似乎这个问题被频繁地查看了。虽然我已经在评论中提供了解决方案,但我认为在这里回答会更好。 我发现问题的原因是我的~.bash_alias文件中有一个别名"deactivate",我很久以前创建了它来停用conda环境,但我忘记了。而且,在我所有的ubuntu容器和电脑上,我使用相同的~.bash_alias文件。在从~.bash_alias文件中删除该别名后,命令source ~/.virtualenvs/test/bin/activate就可以正常工作了。

1
也许你在.bashrc文件中有一个别名,这就是为什么bash将deactivate视为命令而不是函数的原因。 取而代之,
deactivate() {
使用这个。
function deactivate() {

"也许"? 那只是7个月前评论中OP所说的话。您至少应该承认一下。 - Keith Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,