인프런 커뮤니티 질문&답변

Jae Hyeon Lee님의 프로필 이미지
Jae Hyeon Lee

작성한 질문수

장고 설계철학으로 시작하는 파이썬 장고 입문

맥 개발환경 구축

강사님, 터미널 환경설정 값을 zsh 기준도 추가해주시면 좋을 것 같습니다.

해결된 질문

작성

·

905

0

3:55 부분 

 

말씀해주신대로, .zprofile 에 pyenv 환경 변수를 넣었으나,

터미널 실행시 pyenv 라는 명령어를 찾을수 없다고 에러가 떠서 python 명령을 불러오지 못하는 상황이 되었습니다.

이에따라, 관련해서 찾아보니, 

맥의 최신 버전의 맥들의 대부분 기본 쉘인 zsh 기준으로는 zshrc 에 넣어줘야 했고, 값도 일부 달라 해당 값을 넣어 정상 동작함을 확인하였습니다.

 

 

 

출처 : 

https://github.com/pyenv/pyenv

 

답변 1

1

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

질문주신 맥 개발환경 구축 수업노트에도 아래 답변을 추가해두었습니다. 질문에 감사드립니다. :-)

---

본 에피소드에서는 맥의 기본 쉘인 zsh 기반으로 개발환경 구축에 대해서 설명을 드리고 있습니다. 본 에피소드에서는 ~/.zprofile 파일에 pyenv 등의 설정을 추가하기를 설명드렸는 데, Jae Hyeon Lee님 말씀처럼 ~/.zshrc 파일에 넣으셔도 동작하고,  ~/.zprofile 파일에 넣으셔도 동작해야 합니다.

zsh 쉘에서는 .zprofile, .zshrc 외에도 .zshenv, .zlogin, .zlogout 등의 설정파일들을 둘 수 있습니다.

  • 새로운 터미널 창을 띄우실 경우 (쉘 입장에서는 로그인 상황) : .zprofile 로딩 후에 .zshrc 가 로딩됩니다.
  • 기존 터미널 창이 띄워진 상황에서 zsh 명령으로 zsh 쉘을 띄우실 경우 : .zprofile는 로딩되지 않고, .zshrc 만이 로딩됩니다.

그러니 zsh 쉘 설정은 .zshrc 뿐만 아니라 .zprofile에도 넣을 수 있습니다.

Jae Hyeon Lee님의 질문에서 ~/.zprofile에 설정을 넣으신 후에, ~/.zprofile 내역을 로딩한 쉘을 구동하실려면

  • 현재 쉘에서는 source ~/.zprofile 명령으로 즉시 로딩하실 수 있고
  • 새로운 터미널 창을 켜시면 ~/.zprofile 명령이 로딩됩니다.

~/.zprofile 로딩여부가 헷갈리신다면, ~/.zprofile 파일에 echo "echo from ~/.zprofile"  코드를 추가해두시면, ~/.zprofile 로딩 시에 화면에 메세지가 출력이 되니 확인하시기 좋겠죠.

 

~/.zprofile에 설정을 정확히 넣어두셨음에도 pyenv 가 구동이 되지 않으셨다면

  • ~/.zprofile 파일 명에 오타가 있거나 다른 경로에 두셔서, ~/.zprofile 로딩이 로딩되지 않으셨거나
  • ~/.zprofile에 이어 로딩되는 ~/.zshrc 에서 pyenv 설정을 오염시키는 어떠한 설정이 있으셨을 수도 있습니다.

암튼 ~/.zprofile 이나 ~/.zshrc 이나 원하시는 경로에 zsh 쉘 설정을 두시면 됩니다.

 

그리고 pyenv 설정 3줄은 Jae Hyeon Lee님 말씀처럼 pyenv 공식문서에서 쉘스크립트를 복사해서 쓰시는 방법도 좋습니다. pyenv 공식문서에서 for Zsh 부분의 코드이구요.

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

아래 코드를 그대로 복사하셔서 터미널에서 그대로 실행하시면 ~/.zshrc 파일에 각 줄의 echo 내역이 ~/.zshrc 파일에 추가(append)됩니다. append가 되는 이유는 >> 를 통해 앞의 명령의 표준출력(stdout)을 >> 뒤 파일에 추가(append)하는 쉘 명령이며, >>는 윈도우에서도 지원합니다.

제가 알려드린 명령과 일부 다른 부분이 있는 데요. 설정의 차이일뿐, 제가 알려드린 명령도 로딩되셨다면 pyenv가 정상동작합니다. 제가 그렇게 쓰고 있거든요. pyenv init --path와 pyenv init - 명령의 차이에 대해서는 pyenv 공식문서에서도 설명하고 있으니, 관심있으신 분들은 참고해보시면 좋겠습니다.

다양한 방법으로 ~/.zshrc 파일을 편집할 수 있습니다. 제가 알려드린 cat 명령도 자주 사용하는 명령이니 알아두시면 좋구요. pyenv 공식문서의 echo 3줄 명령 방법도 좋으니, 각 명령의 동작을 하나하나 체크해보시면, 쉘 스크립트를 이해하시는 데에 도움이 되실 것입니다.

화이팅입니다. :-)

Jae Hyeon Lee님의 프로필 이미지
Jae Hyeon Lee
질문자

ㅎㅎ 주말에도 열정적이셔서 존경 합니다 ~! 

저는 profile 에 추가하면 잘 동작 안해서 왜그런가 했는데, 오타 나 설치 과정에서 문제가 있을 가능성이 있나 보네용 ㅎㅎ

[어디서 실수를 한건지 ㅠㅠ.. ] 

 

관련해서 자세하게 설명해 주셔서 감사합니다. ! 

Jae Hyeon Lee님의 프로필 이미지
Jae Hyeon Lee

작성한 질문수

질문하기