LoginSignup
7
6

More than 3 years have passed since last update.

Ubuntu 20.04 で pyenv を使用して Python を導入する

Posted at

本記事では、Ubuntu 20.04 上に pyenv を使用して Python を導入する手順をまとめます。

注意

  • そもそも pyenv が必要なのか確認しましょう。pyenv で期待通りに動作する Python を導入するのは簡単ではありません。(私は 1 時間くらいネットをさまよいました。)
    • ただ Python が欲しいだけの方は、環境構築で苦労したくなければ OS 標準のパッケージ(Ubuntu なら sudo apt install python3-pip)や Anaconda などに頼ることをおススメします。
    • 個人的に、pyenv は環境構築で困ったときにネットで対応策を探す面倒を受け入れられる人でないと使えないと思っています。正しく導入できれば便利なんですけどね…。
  • 下記の手順の一部は、Ubuntu 20.04 に依存しています。Ubuntu 18.04 にすら対応していません。
    • 一応、該当箇所には Ubuntu 20.04 以外のユーザ向けの手順が書いてあるページのリンクを貼っています。

環境

  • OS: Ubuntu 20.04
  • 下記でインストールする pyenv のバージョン: 1.2.21
  • 下記でインストールする Python: CPython 3.9.0

インストール手順

1. 必要なコマンドの準備

まずは、pyenv 本体の導入や pyenv を通した Python のインストールで利用する基本的なコマンドをインストールします。

$ sudo apt install git wget curl

2. Python が依存するライブラリのインストール(環境依存)

続いて、Python が依存するライブラリ類をインストールします。
pyenv で CPython をインストール際は、ソースコードからのビルドが行われるため、それに必要なライブラリを一通りインストールします。(これが難しいポイントです。)

OS が Ubuntu 20.04 でない方は、1. Getting Started — Python Developer's Guide を読んでください。

Ubuntu 20.04 では、/etc/apt/sources.list

deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main

を追加し、以下のコマンドを実行します。

$ sudo apt update
$ sudo apt build-dep python3.8

apt install でなく、apt build-dep であることに注意してください。apt build-dep はソースコードからビルドするのに必要なパッケージをまとめてインストールしてくれるコマンドです。ここでは、CPython 3.8 のビルドに必要なパッケージをインストールしています。python3 でなく python3.8 のようにマイナーバージョンまで入ったパッケージを選ぶ必要はありますが、使いたい Python のバージョンと一致させる必要はありません。(マイナーバージョン違いなら依存ライブラリは変わらないだろうということです。)

3. pyenv のダウンロード

Pyenv のダウンロードは、ソースコードをクローンすることで行います。
クローンしたリポジトリ内にこれからインストールする Python が配置されますし、PATH を通しますので、特別な理由がなければ下記のコマンドをコピペしましょう。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

適宜使いたい pyenv のバージョンのタグをチェックアウトしておいてください。(とりあえず最新リリースのタグにしておけば良いと思います。)
2020/12/27 現在の最新バージョンであれば、下記のようになります。

cd ~/.pyenv
git checkout v1.2.21

4. 環境変数の追加(環境依存)

Ubuntu 20.04 であればコンソールは通常 bash ですので、以下を .bashrc ファイルへ追記してください。

PYENV_ROOT="${HOME}/.pyenv"
PATH="${PYENV_ROOT}/bin:${PATH}"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

使っているコンソールが bash でない方は、pyenv の README を確認してください。

5. Python のインストール

お好みの Python をインストールしましょう。
私は CPython 3.9.0 をインストールしました。

$ pyenv install 3.9.0

ソースコードからビルドするため、多少時間がかかります。

6. 動作確認

インストール後は、動作確認をしてください。
依存するライブラリが足りていなかった場合、パッケージの import の段階になって「_ctypes がない」とか言い出したりしますので、使いたいパッケージをインストールして import するところまで確認しておくことをおススメします。

あとがき

元々 個人的なメモ に書いていたものを Qiita にも公開しようと思って書きました。
pyenv で困っている方の役に立つことを願います。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6