pyenv 설치 주위의 사양이 바뀌었기 때문에

pyenv 설치 주위의 사양이 바뀌었기 때문에

2022-10-03 last update

7 minutes reading pyenv 파이썬 도커

만난 오류


  • 언제나 Dockerfile을 새로운 서버로 build하고 있으면, pip가 not found가 되어 버렸다.
  • 이런 warning도 나왔다. WARNING: `pyenv init -` no longer sets PATH.

  • Dockerfile 사양


  • ubuntu18.04, cuda10.2, zsh
  • pyenv 1.2.27

  • fix


  • 구 사양의 Dockerfile (pyenv 부분의 일부)
  • RUN curl https://pyenv.run | zsh && \
        echo '' >> /root/.zshrc && \
        echo 'export PATH="/root/.pyenv/bin:$PATH"' >> /root/.zshrc && \
        echo 'eval "$(pyenv init -)"' >> /root/.zshrc && \
        echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.zshrc
    
  • 새로운 사양
  • 실질 pyenv init -pyenv init --path ?
  • ( .profile 을 괴롭히는 메시지가 나왔지만 따라해도 움직이지 않았기 때문에, 유지보수가 잘 되지 않는 느낌이 있다.)

  • RUN curl https://pyenv.run | zsh && \
        echo '' >> /root/.zshrc && \
        echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /root/.zshrc && \
        echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.zshrc && \
        echo 'eval "$(pyenv init --path)"' >> /root/.zshrc && \
        echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.zshrc
    
  • 새로운 사양의 pyenv 부분의 전반적으로
  • RUN curl https://pyenv.run | zsh && \
        echo '' >> /root/.zshrc && \
        echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /root/.zshrc && \
        echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.zshrc && \
        echo 'eval "$(pyenv init --path)"' >> /root/.zshrc && \
        echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.zshrc
    RUN source /root/.zshrc && \
        pyenv install 3.8.0 && \
        pyenv global 3.8.0 && \
        pip install -U pip
    
  • (그런데 매번 source /root/.zshrc 쓰지 않고 끝낼 방법은 없을까…?)

  • 참고


  • (마침 2,3 일 전 기사)