前書き
UbuntuでPython3を使う場合、`apt`か`apt-get`でパッケージをインストールするのがスタンダードと思います。 ただ、「最新版」を使いたい場合、tarballからインストールしなければいけません。 今回、少々トラブりましたので、そのメモです。参考サイト
- [“ssl module in Python is not available” when installing package with pip3](https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3) - [Ubuntu環境のPython](https://www.python.jp/install/ubuntu/index.html)環境
- [Ubuntu 20.04 LTS 日本語 Remix](https://www.ubuntulinux.jp/home) - Hyper-V マネージャー 10.0.18362.1 - Windows10 build 18363.997 - Python 3.8.5 - pip 20.1.1補足
pipは下記aliasを使ってます。pip='/usr/local/bin/python3.8 -m pip'
トラブル内容
`pip`実行時に「~ ssl module in python is not available ~」とメッセージが出て正常に動作していないっぽい。 ※`python -m pip`で動作することから考えると、`pip`自体はPythonのモジュールとして動作しているので、Pythonの環境に影響されるという事はなんとなくわかる。推測される原因
Python 3.8.5をインストールした際にSSL(OpenSSL)のライブラリがきちんとリンクされていない。この場合、Pythonを対話モードで実行してimport ssl
するとエラーになります。
import ssl
対処方法
- Pythonを正しくインストールするためのライブラリをインストール。# 何はなくとも最新化
sudo apt update
sudo apt upgrade
sudo apt install \
build-essential libbz2-dev libdb-dev \
libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libreadline-dev libsqlite3-dev \
libssl-dev tk-dev uuid-dev \
zlib1g-dev
- Python最新版のtarballをダウンロード。
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
- ダウンロードしたファイルを解凍。
tar xf Python-3.8.5.tgz
- configureを実行
cd Python-3.8.5
./configure
- makeを実行
make
※いくつかWarningが出ますが、今回は気にせずに。
※どうも非推奨の処理が残っているようです。。。。
- 管理者権限でインストールを実行
sudo make install
- インストールされたファイルを確認
/usr/local/bin/python3.8 -V
apt
等パッケージをインストールしたファイルは別のところに入っています。
/usr/bin/python3.8 -V
- ついでに
pip
も最新化
/usr/local/bin/python3.8 -m pip install --upgrade pip
※いつの間にか20.2が出ていたようです。。。