为什么我在运行virtualenvwrapper命令时突然看到“Usage: source deactivate”的提示?

19

使用virtualenvwrapper时,我以前从未看到过这个消息,但现在无论我运行什么命令,比如mkvirtualenv <environment>workon <environment>,我都突然看到了这个消息:

Usage: source deactivate

removes the 'bin' directory of the environment activated with 'source
activate' from PATH. 

我并没有修改virtualenvwrapper,快速的谷歌搜索只有这个GitHub问题 -- 我之前安装了IPython/Anaconda,但是我不确定它是否会干扰virtualenvwrapper。无论如何,我尝试更新两者(conda update conda; conda update ipython)以及将virtualenvwrapper本身更新到v4.1.1,但我仍然看到这个错误。

我正在运行OS X 10.8.4。


2
我猜它在调用自己认为的 deactivate,但最终却调用了 conda 的 deactivate。 - asmeurer
1
在安装iPython/Anaconda之后,我的virtualenvwrapper也出现了同样的问题。根据Anaconda文档中的Linux/OSX卸载指南,在终端运行 rm -fr ~/anaconda 即可解决问题。我使用的操作系统版本是OS X 10.9.2。 - Jheasly
我真的希望每个人都停止尝试封装虚拟环境。当它出现问题时,这真的很麻烦。 - Kevin
3个回答

17

workon是在/usr/local/bin/virtualenvwrapper.sh中定义的,它调用了deactivate。Anaconda的bin目录下也有同名的脚本,所以它会被workon调用。

我目前找到的最佳解决方案是在Anaconda的bin目录中将activatedeactivate重命名。如果您有更好的解决方案,请评论并我会更新此答案。


请解释一下,在“N”中是什么意思?这似乎已经导致了很多天的问题,所以我非常感谢您能提供的所有帮助。 - R Claven
“在 N” 是我真正困惑的地方。 - R Claven
1
似乎我的评论被弄乱或截断了。我发表这篇文章已经一年了,但我会尽力回忆起当时的意思并写下来。 - knite
我已经重命名了deactivate - 感谢您的建议!这使我克服了这个问题并进入了另一个环境问题 ;) 这就是在Python中开发的过程! - R Claven
1
如果您能将我的答案标记为正确的,那就太好了。 :) - knite
显示剩余4条评论

1
在我从https://www.continuum.io/downloads安装Anaconda后,发生了这种情况。如果你不需要该程序并将其卸载,请从你的~/.bash_profile中删除以下内容:
added by Anaconda2 4.2.0 installer
export PATH="//anaconda/bin:$PATH"

0

Anaconda已经知道activate和不同的环境在哪里,因此不需要virtualenvwrapper。

在Mac上,virtualenvwrapper似乎只提供了workon快捷方式来激活虚拟环境,您可以在bash.rc文件中使用别名,并卸载virtualenvwrapper。

只需在将~/anaconda/bin添加到路径的位置下面添加别名行,就像下面的示例一样。

# added by Anaconda3 4.3.1 installer
export PATH="$HOME/anaconda/bin:$PATH"

# Add workon alias here!
alias workon='source activate'

现在当我运行“workon Django”时,它会运行我的Anaconda Django虚拟环境,而不会提醒我使用“source deactivate”退出。

如果你没有听清楚,要退出虚拟环境只需运行“source deactivate”。


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