#概要
WSL(openSUSE Leap15)にPython3を導入したがzypper経由だと3.6.5までしか入らない(2019/03/13現在).最新の3.7.2をビルドしたらいろいろハマったのでメモ.
#導入
まずはPython3をインストール.
sudo zypper install python3
ついでにpipも入れた.
sudo zypper install python3-pip
#最新版のビルド
LinuxにPython3系をインストールする手順
Unix プラットフォームで Python を使う
を参考に最新版をビルドした.
(注)make installはPython3のバイナリを破壊する可能性があるらしいのでmake altinstallが推奨されている.これについては「あとがき」参照.
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
tar -xvzf Python-3.7.2.tgz
cd Python-3.7.2
./configure
make
sudo make install
すると最後らへんにこんな文言が出た.
zlib not available
make: *** [install] Error 1
zlibないのか~と思ってインストールを試みる.
sudo zypper install zlib 14:45:32 [sudo] password for root:
Loading repository data...
Reading installed packages...
'zlib' not found in package names. Trying capabilities.
'libz1' providing 'zlib' is already installed.
Resolving package dependencies...
Nothing to do.
zlibというパッケージ名ではないようだが,あるにはあるらしい.困った.
ということで
https://github.com/pyenv/pyenv/wiki
を参考にコードを走らせる.
zypper install gcc automake openssl-devel ncurses-devel readline-devel zlib-devel tk-devel libffi-devel sqlite3-devel
そんで,再び
./configure
make
sudo make install
すると無事3.7.2になりました.
#あとがき
ビルドの時に参考にしたPython本家ドキュメントには
警告 make install は python3 バイナリを上書きまたはリンクを破壊してしまうかもしれません。そのため、make install の代わりに exec_prefix/bin/pythonversion のみインストールする make altinstall が推奨されています。
とあるので,make installする前に
./configure
make
sudo make altinstall
をした.
すると
setuptools in /usr/local/lib/python3.7/site-packages (40.6.2)
pip in /usr/local/lib/python3.7/site-packages (18.1)
と出力され,Python本体のバージョンは変わらなかった.
仮想環境で3.7.2を入れられるようになったということだろうか.
自分は本体も更新したかったのでmake installした.
この辺は詳しい事情を知らないので誰か教えてください.オナシャス.
#参考資料
URLの再掲.
LinuxにPython3系をインストールする手順
Unix プラットフォームで Python を使う
https://github.com/pyenv/pyenv/wiki
初投稿につき参考にさせて頂きました.ありがとうございます.
Qiita初心者の投稿方法備忘録
Qiita記事の書き方〜基本の基本〜