[[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





トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS