다시 pipenv shell을 잊지 않도록하기위한 shellscript

소개



pipenv, 사용하십니까?



pipenv는 프로젝트의 패키지 관리 및 가상 환경 구축을 쉽게 자동으로 수행하는 도구입니다.
pyenv와의 연계도 해주는, 꽤 편리한 녀석입니다.

하지만 이런 경험이 없습니까?



실행하면 오류가 발생했기 때문에 pip에 넣었지만 가상 환경이 없었을 뿐이었습니다 ...

자신은 굉장히 합니다.

그래서!



Pipfile이있는 곳에 cd하면 pipenv shell 할 shellscript를 작성했습니다.



만든



~/.bash_autopipenv
#!/bin/bash

function ispipenv()
{
if [ "$PIPENV_ACTIVE" == 1 ]; then
  :
else
  if [ -e "Pipfile" ]; then
      pipenv shell
  fi
fi
}

function pipenv_cd()
{
  \cd $@ && ispipenv
}

alias cd='pipenv_cd'

포인트는 다음 부분.
if [ "$PIPENV_ACTIVE" == 1 ]; then
   ...

가상 환경에 들어가면 PIPENV_ACTIVE라는 환경 변수가 정의되는 것을 이용합니다.
가상 환경에 있지 않은 경우 PIPENV_ACTIVE는 정의되지 않으므로 오류 회피의 의미에서 "$PIPENV_ACTIVE"로 평가하고 있습니다.
이제 가상 환경에 들어가면 pipenv 셸이 실행되지 않습니다.

또한 pipenv_cd의\cd를 cd로 설정하면,
pipenv_cd내에서 pipenv_cd가 불려 그 안에서 pipenv_cd가 불려・・・이 되어 버리므로 주의가 필요합니다.

항상 로드



.bash_profile과 .bashrc에 다음을 추가하면 항상 읽을 수 있으므로 pipenv shell을 실행하는 것을 잊지 않습니다.
if [ -f ~/.bash_autopipenv ]; then
  . ~/.bash_autopipenv
fi

요약


  • shellscript로 나만의 bash를 만드는 재미있는
  • 다음은 exit를 잊지 않도록 하자!
  • 좋은 웹페이지 즐겨찾기