나는 공식 Git Bash 프롬프트 지원을 사용하여 프롬프트의 일부로 현재 분기를 표시합니다.
python -m venv <dir>
내 문제는 ( )를 사용하여 Python 가상 환경을 활성화하면 Bash 프롬프트의 일부로 source bin/activate
가상 환경 이름이 표시되지 않는다는 것입니다 .(atlassian-watchdog)
nlykkei:~/projects/atlassian-watchdog (master *)$
in 대신 에 with 를 사용하고 PROMPT_COMMAND
있기 때문에 실패하고 있다는 느낌이 강하게 듭니다 .~/.bashrc
PS1
GIT_PS1_SHOWCOLORHINTS
PROMPT_COMMAND
PROMPT_COMMAND
활성화 시 프롬프트에 환경 이름을 추가하기 위해 Python 가상 환경을 사용하는 방법이 있습니까 ?
~/.git-prompt.sh:
# If you would like a colored hint about the current dirty state, set
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
# the colored output of "git status -sb" and are available only when
# using __git_ps1 for PROMPT_COMMAND or precmd.
휴지통/활성화:
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
if [ "x(atlassian-watchdog) " != x ] ; then
PS1="(atlassian-watchdog) ${PS1:-}"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
~/.bashrc:
# git prompt
source ~/.git-prompt.sh
GIT_PS1_SHOWCOLORHINTS=1
PROMPT_COMMAND='__git_ps1 "\u:\w" "\\\$ "'
답변1
해결책은 의 관련 부분을 bin/activate
결합하는 것 입니다 ~/git-prompt.sh
.
가상 환경을 포함하도록 첫 번째 인수를 래핑하고 수정하는 함수입니다 __git_ps1_venv()
.__git_ps1()
__git_ps1()
이 PS1
변수는 프롬프트 형식으로 설정되어야 합니다.
~/.bashrc
:
##################
# Prompt
##################
__git_ps1_venv() {
local pre="$1"
local post="$2"
if [ -n "${VIRTUAL_ENV}" ] && [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ]; then
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
pre="[`basename \`dirname \"$VIRTUAL_ENV\"\``] ${pre}"
else
pre="(`basename \"$VIRTUAL_ENV\"`) ${pre}"
fi
fi
__git_ps1 "${pre}" "${post}"
}
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
if [[ -r ~/.git-prompt.sh ]]; then
. ~/.git-prompt.sh
GIT_PS1_SHOWCOLORHINTS=1
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM="verbose name"
PROMPT_COMMAND='__git_ps1_venv "'"${PS1%\\\$ }"'" "\\\$ "'
fi