나는 conda와 pyenv를 모두 사용하고 있으며 동일한 터미널에 머무르는 동안 둘 사이를 전환하고 싶습니다.
내 .bashrc에서 둘 다 초기화하는 항목은 다음과 같습니다.
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/myUser/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/myUser/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/myUser/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/myUser/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
그리고
# Pyenv initialize
export PATH="/home/myUser/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
단순히 별도의 쉘 스크립트에 초기화 라인(pyenv용)을 넣으려고 했지만 작동하지 않습니다(pyenv가 초기화되지 않음).
정보: Pyenv는 시와 함께 사용하는 데 필요한 또 다른 가상 Python 환경입니다.
답변1
적어도 해결 방법을 찾은 것 같습니다. 일단 활성화된 pyenv를 비활성화하는 것은 어려운 일인 것 같습니다. 대신에 제안된 대로 .bashrc에 init 함수를 정의합니다.우편
enable-pyenv () {
# Load pyenv automatically by adding
# the following to your profile:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
}
그런 다음 요청 시 모든 셸에서 pyenv를 활성화하기만 하면 됩니다. 내가 시도한 bash 스크립트는 작동하지 않았습니다(아마 별도의 쉘 세션을 열었기 때문일 것입니다).