Comment puis-je déplacer eval "$(pyenv init -)"
en .zshrc
vers .xonshrc
? Quelle est la syntaxe dans xonsh
pour faire cela? (
Répondre
pyenv
(pour le moment) ne prend en charge que les shells conformes POSIX (comme bash
ou zsh
) ainsi que le shell fish
. pyenv
n'est pas seulement une enveloppe autour de python
, il s'intègre dans la session shell en cours d'exécution afin de fournir de manière transparente le virtualenv désiré.
eval "$(pyenv init -)"
prend la sortie de pyenv init -
et exécute (évalue) dans le contexte de la coquille en cours d'exécution, comme si la sortie, il a été écrit au lieu de la commande eval
. En regardant la sortie de pyenv init -
, vous pouvez voir qu'il s'agit d'un peu de code shell qui, entre autres, définit la fonction 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
}
si elle est exécutée dans un code shell fish
, pyenv init -
rendements qui fait la même chose, mais dans la syntaxe de fish
.
-
Pour pyenv
travailler avec xonsh
il aurait à la sortie xonsh
variables -Compatible et définitions fonction. Pour autant que je puisse voir, vous devez au moins éditer les fichiers libexec/pyenv-init
et libexec/pyenv-sh-shell
(et probablement quelques plugins) pour cela.
vous devriez publier quelque contexte, p.ex. ajouter un extrait de votre .bashrc contenant la ligne. Cela ne semble pas être un paramètre omniprésent. –