Python virtualenvwrapper:'workon'无限期挂起

时间:2014-08-25 18:29:16

标签: python bash virtualenv virtualenvwrapper

标题或多或少都说明了一切。尝试workon $SOME_VIRTUALENV回应命令,然后无限期地挂在高CPU(~70%),直到它kill -9为止。在OS X Mavericks上。

我已经四处搜索了,大多数类似的问题似乎都是来自使用zsh的人(我不是),并且还会在制作完成virtualenv名称的标签上崩溃(我不是),所以我有些不知所措。我知道,并不是很多,但我不是一个bash专家,甚至一些关于如何获得一些真正的诊断信息的建议将不胜感激。

$ echo $OSTYPE
darwin13.1.0

$ echo $SHELL
usr/local/bin/bash

$ echo $BASH_VERSION
4.0.0(1)-release

$ which python
/usr/local/bin/python

$ python --version
Python 2.7.8

$ pip show virtualenv
---
Name: virtualenv
Version: 1.11.6
Location: /usr/local/lib/python2.7/site-packages
Requires:

$ pip show virtualenvwrapper
---
Name: virtualenvwrapper
Version: 4.3.1
Location: /usr/local/lib/python2.7/site-packages
Requires: virtualenv, virtualenv-clone, stevedore

.bashrc(或多或少地从某处复制粘贴):

# Locate virtualenvwrapper binary
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    export VENVWRAP=/usr/local/bin/virtualenvwrapper.sh
fi

if [ ! -z $VENVWRAP ]; then
    # virtualenvwrapper -------------------------------------------
    # make sure env directory exists; else create it
    [ -d $HOME/sites/env ] || mkdir -p $HOME/sites/env
    export WORKON_HOME=$HOME/sites/env
    source $VENVWRAP

    # virtualenv --------------------------------------------------
    export VIRTUALENV_USE_DISTRIBUTE=true

    # pip ---------------------------------------------------------
    export PIP_VIRTUALENV_BASE=$WORKON_HOME
    export PIP_REQUIRE_VIRTUALENV=false
    export PIP_RESPECT_VIRTUALENV=true
    export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
fi

2 个答案:

答案 0 :(得分:1)

对于后人来说,对于任何后来搜索这个的可怜的灵魂来说:

我最终找到了这个问题的罪魁祸首,如果不是原因。由virtualenvwrapper设置的自定义选项卡完成以某种方式引起了一个重大问题;如果我尝试Tab-complete workon命令,则输入的下一个命令将导致上述问题。即使我在Tab-C命令中输入了一个全新的命令,也会发生这种情况。

所以,我刚刚停止在workon上使用制表符完成功能,并删除了virtualenvwrapper_setup_tab_completion中函数true的内容(替换为无效virtualenvwrapper.sh)确保我无法意外地做到这一点。

我可能会更深入地了解为什么标签完成会导致问题,但它现在不值得付出努力。我发现还有一些人与virtualenvwrapper的标签完成有关的问题,但在这些情况下终端在他们试图使用它时立即崩溃,这不是这里发生的事情。

答案 1 :(得分:0)

如果您不确定自己在bashrc中投放了什么,请不要将其放在那里。也许这些道路正在做奇怪的事情,这就是一切都被困住的原因。

请尝试评论那里写的东西。

按照此处的步骤操作:http://virtualenvwrapper.readthedocs.org/en/latest/install.html或运行: 找到virtualenvwrapper.sh

您获得的路径是您需要的。编辑.bashrc并添加: source /path-of-what-you-got-earlier/virtualenvwrapper.sh

更改后保存并关闭并执行: 来源.bashrc

(也许你还是需要配置WORKON_HOME。我不记得了)试着看看是否有任何改变。

如果没有,请尝试创建新的virtualenv