美文网首页
解决conda与virtualenv之间deactivate冲突

解决conda与virtualenv之间deactivate冲突

作者: Silver_42ac | 来源:发表于2021-12-08 14:42 被阅读0次

    原因: 由于virtualenv 创建的 shell 函数 deactivate 与环境变量中 conda 文件 deactivate 重名,导致 virtualenv 环境中执行 deactivate 出现维妮塔

    来源:
    env/quast/bin/activate 实际是shell 脚本,从其中找到deactivate

    解决:
    conda 使用命令 conda deactivate
    virtualenv 使用下列shell 脚本 创建函数(函数名可以改为其它的)

    deactivate () {
        unset -f pydoc >/dev/null 2>&1 || true
    
        # reset old environment variables
        # ! [ -z ${VAR+_} ] returns true if VAR is declared at all
        if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
            PATH="$_OLD_VIRTUAL_PATH"
            export PATH
            unset _OLD_VIRTUAL_PATH
        fi
        if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
            PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
            export PYTHONHOME
            unset _OLD_VIRTUAL_PYTHONHOME
        fi
    
        # The hash command must be called to get it to forget past
        # commands. Without forgetting past commands the $PATH changes
        # we made may not be respected
        hash -r 2>/dev/null
    
        if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
            PS1="$_OLD_VIRTUAL_PS1"
            export PS1
            unset _OLD_VIRTUAL_PS1
        fi
    
        unset VIRTUAL_ENV
        if [ ! "${1-}" = "nondestructive" ] ; then
        # Self destruct!
            unset -f deactivate
        fi
    }
    
    # run command
    deactivate
    

    相关文章

      网友评论

          本文标题:解决conda与virtualenv之间deactivate冲突

          本文链接:https://www.haomeiwen.com/subject/btorxrtx.html