フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

pyenvでpythonをインストールする

前回

  • dockerのpyenvをインストールしたので、今回はpyenvで最新のpython3系をインストールしてみる

px-wing.hatenablog.com

インストールできるバージョンの確認

  • 下記のコマンドでインストールできるバージョンを確認する
 # pyenv install --list
  • 現在、何が最新のバージョンなのか確認するには公式サイトで確認する。現時点では 3.8.4が最新バージョンのため、3.8..4をインストールする www.python.org

余談

pyenvではAnacondaやmicropythonなどもインストールすることが可能である。

pythonのインストール

# pyenv install 3.8.4
Downloading Python-3.8.4.tgz...
-> https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tgz
Installing Python-3.8.4...
Installed Python-3.8.4 to /root/.pyenv/versions/3.8.4

インストールされているバージョンの確認

# pyenv versions
  3.8.4

インストールしているバージョンの適用

pyenv global 3.8.4

Dockerfileでの実装

  • /root/.pyenv/bin/pyenv を実行する際にフルパスになってしまっている原因は下記の記述だとdocker buildしている段階ではpyenvコマンドのパスが通っていないため、直接インストール先のパスを指定してコマンドを直接実行している。

  • ただし、コンテナ起動後にログインしたときはpyenvとpythonコマンドがパスが通った状態で実行することが可能である。

FROM alpine:latest

RUN apk update

RUN apk add --no-cache git bash build-base libffi-dev openssl-dev bzip2-dev zlib-dev readline-dev sqlite-dev

ENV ENV="/root/.ashrc"

RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv

RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.ashrc
RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.ashrc

RUN /root/.pyenv/bin/pyenv install 3.8.4


RUN echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.ashrc

RUN /root/.pyenv/bin/pyenv global 3.8.4

動作確認

# docker exec -it backend /bin/ash
/ # python --version
Python 3.8.4

次回

  • djangoをインストールしてみたいとおもいます