[[Linuxサーバー]] Ubuntuでも 18.04以降は Python 2系ではなく、3系がデフォルトでインストールされているので、 Python3を使おうと思ったら、新し目の Ubuntuをインストールするのが、手っ取り早くて確実。 でも、私のように 32bitのマシンしか持ってない場合、Ubuntuのサポートは 16.4 までなので、 デフォルトでは Python2.7 とかになってしまう。 なので、Python2 がデフォルト・インストールの環境に Python3 をインストールするときのメモ。 ''(1) gitをインストールする'' Pyenv のインストールに必要なため、まずは gitをインストール。 $ sudo apt-get install git ''(2) gitからPyenvのインストーラを取得'' $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv Pyenvにパスを通して有効化します。 $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile Pyenvのバージョンを確認します。 $ pyenv -v pyenv 1.2.8 ''(3) 目的のバージョンの Python をインストール'' pyenv を使って、目的のバージョンのpythonをインストールする。 $ pyenv install 3.7.0 Downloading Python-3.7.0.tar.xz... -> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz Installing Python-3.7.0... BUILD FAILED (Ubuntu 18.04 using python-build 1.2.12-2-geb68ec94) Inspect or clean up the working tree at /tmp/python-build.20190706061507.17491 Results logged to /tmp/python-build.20190706061507.17491.log Last 10 log lines: ~~ 中略 ~~ checking for cl.exe... no configure: error: in `/tmp/python-build.20190706061507.17491/Python-3.7.0': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details おっと、Cコンパイラが入ってなかった。。 追加でインストールが、その後も makeや様々なライブラリが足りていないことが判明。 最終的には以下の記事を見つけて、足りないパッケージをまとめてインストールして 解決した。 https://github.com/pyenv/pyenv/wiki/common-build-problems $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl 再度 pyenv で 3.7.0 をインストール $ pyenv install 3.7.0 $ pyenv versions * system (set by /home/user/.pyenv/version) 3.7.0 pyenv versionsコマンドで、インストールされている Pythonを確認すると、 3.7.0 がインストールされてました。 $ pyenv versions * system 3.6.7 Python 3.6.7を有効化します。 $ pyenv local 3.6.7 $ pyenv versions system * 3.6.7 (set by /vagrant/.python-version) * CentOSの場合 ''(1) 依存パッケージをあらかじめインストールする'' $ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel libffi-devel git どっかのサイトで見つけた情報では " libffi-devel " が足りず、 pyenv でのインストールで " ModuleNotFoundError: No module named '_ctypes' " というエラーが出てしまうので、上のサンプルに追加してます。 ''(2) pyenv を入手 '' pyenv を ~/.pyenv に git clone します。 $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv ''(3) インストール'' $ pyenv install 3.7.0 ''(4) 切り替え'' $ pyenv global 3.6.0 $ pyenv rehash [root@W5-01 ~]# pyenv global 3.7.0 [root@W5-01 ~]# pyenv rehash [root@W5-01 ~]# python --version Python 3.7.0