Python 3のプログラミング環境を構築する

Python 3が使えないと体調が悪くなるので、インストールすることにします。

長年私は、趣味で使うプログラミング言語はRubyが主体だったんですが、統計学を勉強し始めたときに、numpyやpandasといったライブラリが使えるPythonの方が便利に思い、いつのまにかPythonが主体になっていました。

言語仕様としては、Rubyの方が洗練されていると思いますが、ライブラリの充実度では圧倒的にPythonの方が上です。
まあ、私が知らないだけかもしれませんが。

レッツ、インストール

まずは、パッケージ版のPython3をインストールすることにします。

$ sudo apt -y install python3 python3-pip python3-venv libffi-dev

念のため、ちゃんとインストールされたか確認します。

$ which python3
/usr/bin/python3

よし。

ソースインストール

最新版のPythonが使えなくても体調不良を起こすかもしれないので、がんばってインストールしときます。

カタカタカタ・・・

コンパイラのインストール。

$ sudo apt install -y 'build-essential'

必要なパッケージのインストール。

$ sudo apt-get -y install readline-doc libssl-doc

zlibのインストール。

$ wget https://zlib.net/zlib-1.2.11.tar.gz
$ tar xvzf zlib-1.2.11.tar.gz
$ cd zlib-1.2.11
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

sqlite3のインストール。
別にこれがなくてもPython3のインストールは可能ですが、ipythonをインストールしたときに履歴機能が使えなくなってしまうので、がんばってインストールしておきます。

$ wget https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz
$ tar xvzf sqlite-autoconf-3300100.tar.gz
$ cd sqlite-autoconf-3300100/
$ ./configure --prefix=/usr/local
$ make 
$ sudo make install

そして、いよいよPython3のインストール。

$ wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
$ tar xvzf Python-3.8.0.tgz
$ cd Python-3.8.0
$ ./configure --enable-optimizations --prefix=/usr/local
$ make
$ sudo make install

Ubuntu 16.04の時は、これだけの設定ではコンパイルエラーやインストールエラーが発生していた記憶がありますが、18.04では上手くいきました。

このままだと、pip3という、Pythonパッケージをインストールするコマンドのバージョンが古いので、こいつをアップグレードしておきます。

$ sudo /usr/local/bin/pip3 install --upgrade pip

最後に、ちゃんとインストールされたか調べておきます。

$ which python3
/usr/local/bin/python3
$ python3 -V
Python 3.8.0

よし。

追記

Pythonのソースインストールが不完全でした。(´・ω・`)

pipコマンドでパッケージをインストールしようとすると、エラーになるのです。

$  sudo pip3 install ipython
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
〜省略〜
Could not fetch URL https://pypi.org/simple/ipython/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/ipython/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

どうやら、SSLモジュールが組み込めていない模様。

»pipコマンドでパッケージがインストールできない問題を解決する