2017-05-25 21 views
0

我該如何將eval "$(pyenv init -)"移動到.zshrc.xonshrcxonsh這樣做的語法是什麼?

+0

您應該發佈一些上下文,例如添加包含該行的.bashrc的片段。 這似乎不是一個無處不在的設置。 –

回答

0

pyenv(目前)只支持符合POSIX的shell(如bashzsh)以及fish shell。 pyenv不僅僅是python的包裝,它將自身集成到正在運行的shell會話中,以便透明地提供所需的virtualenv。

eval "$(pyenv init -)" 

需要的pyenv init -和運行(求值)輸出它在運行的殼的上下文中,就好像輸出被寫有代替eval命令。

查看pyenv init -的輸出結果可以看出,這是一些shell代碼,除其他外,它定義了pyenv函數。

export PATH="/home/adaephon/local/opt/pyenv/shims:${PATH}" 
export PYENV_SHELL=zsh 
source '/home/adaephon/local/opt/pyenv/libexec/../completions/pyenv.zsh' 
command pyenv rehash 2>/dev/null 
pyenv() { 
    local command 
    command="$1" 
    if [ "$#" -gt 0 ]; then 
    shift 
    fi 

    case "$command" in 
    activate|deactivate|rehash|shell) 
    eval "$(pyenv "sh-$command" "[email protected]")";; 
    *) 
    command pyenv "$command" "[email protected]";; 
    esac 
} 

如果在fish shell中運行,pyenv init -返回代碼,不會相同,但在fish的語法。

-

對於pyenvxonsh工作那就要輸出xonsh兼容的變量和函數定義。據我所見,你至少需要編輯文件libexec/pyenv-initlibexec/pyenv-sh-shell(可能還有一些插件)。