UbuntuにPython3をインストールする完全ガイド【初心者向け】
はじめに:なぜUbuntuでPythonを使うのか?
プログラミングの世界へようこそ!多くのプログラミング言語がある中で、Pythonは特に初心者からプロフェッショナルまで幅広く愛されています。その理由は、シンプルで読みやすい文法、豊富なライブラリ、そして汎用性の高さにあります。Web開発、データ分析、機械学習、自動化スクリプトなど、Pythonでできることは数え切れません。
そして、UbuntuはLinuxディストリビューションの中でも特に人気があり、開発者にとって非常に使いやすいOSです。多くの開発ツールや環境がUbuntu上でスムーズに動作します。PythonとUbuntuの組み合わせは、プログラミング学習を始める上で、あるいは本格的な開発を進める上で、強力な土台となります。
この記事は、Ubuntuを使い始めたばかりの方や、プログラミング自体が初めてという方を対象に、Ubuntu環境にPython3をインストールし、開発を始めるための準備を整える方法を、ゼロから丁寧に解説します。
このガイドで学ぶこと
- なぜUbuntuに改めてPython3をインストールする必要があるのか。
- UbuntuでPythonをインストールするための主な方法(apt, PPA, pyenv)。
- それぞれの方法の具体的な手順と、メリット・デメリット。
- 開発において必須となる「仮想環境」の概念と使い方。
- Python開発を始めるための基本的な準備。
対象読者
- Ubuntuをインストールしたばかりで、次に何をすれば良いか分からない方。
- Ubuntu環境でPythonプログラミングを始めたい方。
- プログラミングは初めてだが、Pythonに興味がある方。
- システムのPython環境を壊さずに、安全にPythonを使い始めたい方。
この記事を読めば、Ubuntu環境でPython3を快適に使うための基盤をしっかりと構築できるはずです。さあ、一緒にPythonのインストールを始めましょう!
始める前に:前提条件
この記事の手順を進めるにあたって、以下の準備ができていることを確認してください。
- Ubuntuがインストールされたコンピューター: デスクトップ版でもサーバー版でも構いません。記事中のコマンドは主にデスクトップ環境での利用を想定していますが、基本的な手順はサーバー版でも同じです。
- インターネット接続: Python本体や関連ツール、ライブラリのダウンロードが必要です。
- 基本的なターミナル(端末)操作の知識: コマンドを入力して実行する、コピー&ペーストする、
Enter
キーを押す、といった操作ができれば十分です。もし不安があれば、Ubuntuの基本的なターミナル操作に関する簡単なチュートリアルを先に確認しておくことをお勧めします。この記事でも、必要なコマンドとその説明は丁寧に行います。
なぜ改めてPython3をインストールするのか? UbuntuのPython事情
「あれ?Ubuntuには最初からPythonが入っているんじゃないの?」と思った方もいるかもしれません。その通りです。Ubuntuを含む多くのLinuxディストリビューションには、システムの運用に必要なツールやスクリプトのために、デフォルトでPythonがインストールされています。
しかし、このデフォルトでインストールされているPythonを、そのまま開発に使うのはいくつかの理由からお勧めできません。
- バージョンが古い可能性がある: Ubuntuの特定のリリースに含まれるPythonのバージョンは、開発が進んでいる最新版から遅れている場合があります。Pythonは日々進化しており、新しいバージョンには新しい機能や改善が含まれています。最新の機能を活用したい場合や、特定のライブラリが要求するバージョンを使いたい場合には、デフォルトのバージョンでは対応できないことがあります。
- システムの安定性に関わる: Ubuntuのシステム自体が、デフォルトのPython環境に依存している場合があります。システムにインストールされているPython環境に直接ライブラリを追加したり、バージョンを変更したりすると、思わぬ形でシステムが不安定になったり、最悪の場合は正常に起動しなくなるリスクがあります。
- Python2とPython3: 歴史的な経緯から、以前は多くのシステムでPython2が使われていました。現在ではPython3が主流であり、Python2は公式なサポートも終了しています。Ubuntuの古いバージョンではデフォルトでPython2がインストールされている場合もありますが、これからPythonを学ぶならPython3を使うべきです。たとえPython3がインストールされていても、特定のバージョンが必要になることはよくあります。
- 複数のプロジェクトで異なるバージョンが必要になる: 開発を進める中で、あるプロジェクトではPython 3.8を使いたいが、別のプロジェクトではPython 3.10を使いたい、といった状況が出てきます。システムのPython環境一つだけでは、このような要求に対応できません。
これらの理由から、開発用途でPythonを使う場合は、システムのPythonとは別に、開発用のPython環境を構築するのが一般的な、そして安全な方法です。この記事では、そのための具体的な方法をいくつか紹介します。
UbuntuにおけるPythonインストールの主な方法
Ubuntuに開発用のPython環境をインストールする方法はいくつかあります。それぞれに特徴があり、目的に応じて最適な方法を選択します。
- aptパッケージマネージャーを使う: Ubuntuにソフトウェアをインストールする最も一般的で簡単な方法です。Ubuntuのリポジトリ(ソフトウェアの保管場所)からPythonパッケージをダウンロードしてインストールします。安定したバージョンをすぐに使い始めたい場合に最適です。初心者の方にはまずこの方法をお勧めします。
- PPA (Personal Package Archive) を使う: Ubuntuの公式リポジトリにはない、より新しいバージョンのソフトウェアを提供している個人やグループが公開しているリポジトリを利用する方法です。aptより新しいバージョンのPythonをインストールしたい場合に利用できます。
- pyenvを使う: これはPython本体をインストールするツールというよりは、「複数のPythonバージョンを管理するためのツール」です。システム上に様々なバージョンのPythonをインストールし、プロジェクトごとに簡単に切り替えて使用することができます。複数のPythonバージョンを使い分ける必要がある場合に非常に強力です。
- ソースコードからビルドする: Pythonの公式サイトからソースコードをダウンロードし、自分でコンパイルしてインストールする方法です。特定のコンパイルオプションを有効にしたい場合や、最新中の最新版を使いたい場合などに使いますが、手順が複雑で依存関係の問題なども発生しやすいため、初心者にはあまりお勧めしません。
この記事では、初心者向けとして、まず最も簡単な aptを使った方法 を詳しく解説します。次に、より新しいバージョンが必要な場合に使える PPAを使った方法 を紹介します。最後に、複数のバージョン管理に非常に便利な pyenvを使った方法 を詳しく解説します。ソースコードからのビルドは、概要のみ触れるに留めます。
それでは、それぞれの方法を見ていきましょう。
方法1:aptパッケージマネージャーを使ったインストール (推奨)
apt (Advanced Packaging Tool) は、Ubuntuを含むDebian系のOSでソフトウェアをインストール、管理するためのコマンドラインツールです。最も簡単で安定した方法であり、ほとんどの初心者の方にとっては、まずこの方法でPython3をインストールするのが良いでしょう。
手順詳細
-
端末を開く
画面左上のアクティビティ(またはアプリケーションメニュー)を開き、「端末」または「Terminal」と検索して起動します。キーボードショートカット
Ctrl + Alt + T
でも開けます。“`bash
端末を開く
“`
-
パッケージリストの更新とアップグレード
ソフトウェアをインストールする前には、利用可能なパッケージのリストを最新の状態にし、システム上の既存のパッケージを最新版にアップグレードしておくのが良い習慣です。これにより、依存関係の問題を防ぎ、常に最新のセキュリティアップデートが適用された状態を保てます。
以下のコマンドを実行します。
sudo
は「スーパーユーザーとして実行」という意味で、システムの変更を伴うコマンドには必要です。パスワードの入力を求められたら、Ubuntuにログインするときのパスワードを入力してEnterキーを押します(入力中は画面に文字が表示されませんが、入力されています)。bash
sudo apt update
sudo apt upgradesudo apt update
: Ubuntuがソフトウェアパッケージを探すためのリスト(リポジトリの情報)をインターネット上から最新のものに更新します。sudo apt upgrade
:update
で取得した最新リストに基づいて、現在システムにインストールされているパッケージのうち、新しいバージョンがあるものをすべてアップグレードします。
upgrade
コマンドの実行中に、いくつかのパッケージのインストールについて確認を求められる場合があります。通常はY
キーを押してEnterを押せば続行されます。 -
Python3のインストール
いよいよPython3本体をインストールします。Ubuntuのリポジトリには、開発に必要な基本的なPython3パッケージが含まれています。
bash
sudo apt install python3このコマンドは、Ubuntuのリポジトリから
python3
という名前のパッケージを探し、ダウンロードしてインストールします。依存関係にある他の必要なパッケージも自動的にインストールされます。もし、特定のマイナーバージョン(例: Python 3.8, 3.9など)を指定したい場合は、Ubuntuのバージョンや利用可能なリポジトリによって異なりますが、通常は
python3.x
の形式で指定できます。例えば、Python 3.8をインストールしたい場合は以下のようになります(ただし、Ubuntuのバージョンによっては利用できない場合もあります)。“`bash
例:Ubuntu 20.04 (LTS)などでPython 3.8をインストールする場合
sudo apt install python3.8
“`特別な理由がなければ、単に
python3
と指定するのが最も簡単で、Ubuntuが提供する安定した最新のPython3バージョンがインストールされます。 -
インストールされたバージョンの確認
インストールが完了したら、正しくPython3がインストールされたか、バージョンを確認してみましょう。
bash
python3 --version実行すると、以下のようにインストールされたPython3のバージョンが表示されます(バージョン番号は環境によって異なります)。
Python 3.x.x
ここで注意点があります。 Ubuntuの多くのバージョンでは、
python
というコマンドはデフォルトでPython2を指している場合があります。bash
python --versionこのコマンドを実行すると、Python2のバージョンが表示されるか、あるいは
python
コマンドが見つからないというエラーになることがあります。重要なのは、開発時には
python3
コマンドを使用するか、後述する仮想環境やpyenvで有効化された環境でpython
コマンドを使うことです。 システムのpython
コマンドをPython3に強制的に変更するシンボリックリンクを張るなどの方法は、システムの動作に影響を与える可能性があるため、初心者にはお勧めしません。常にpython3
と入力するか、適切な環境をアクティベートしてからpython
を使う習慣をつけましょう。
開発に必須:仮想環境 (venv) の使い方
Pythonを使った開発において、仮想環境は非常に重要な概念です。なぜなら、異なるプロジェクトでは、それぞれ異なるバージョンのライブラリが必要になったり、ライブラリの組み合わせが異なったりするからです。
例えば、プロジェクトAではウェブフレームワークのDjangoのバージョン3を使いたいが、プロジェクトBではバージョン4を使いたい、といった状況はよくあります。もしこれらのライブラリをシステム全体のPython環境に直接インストールしてしまうと、バージョンが衝突したり、一方のプロジェクトの要件を満たせなくなったりします。
仮想環境は、プロジェクトごとに独立したPython実行環境を作成する仕組みです。仮想環境の中にインストールされたライブラリは、その仮想環境内でのみ有効であり、他の仮想環境やシステム全体のPython環境には影響を与えません。これにより、プロジェクトごとに必要なライブラリのバージョンを管理し、依存関係の衝突を防ぐことができます。
Python 3.3以降では、標準ライブラリとして venv
という仮想環境を作成・管理するためのモジュールが含まれています。aptで python3
をインストールした場合でも、venv
を使うための追加パッケージが必要な場合があります。
-
venvモジュールのインストール
以下のコマンドで
python3-venv
パッケージをインストールします。bash
sudo apt install python3-venv -
仮想環境の作成
仮想環境を作成したいプロジェクトのディレクトリに移動します。まだプロジェクト用のディレクトリがない場合は作成しましょう。例えば、
my_python_project
というディレクトリを作成するとします。bash
mkdir my_python_project
cd my_python_projectディレクトリ内で、以下のコマンドを実行して仮想環境を作成します。
myenv
の部分は作成する仮想環境の名前です。好きな名前(例:venv
,.venv
,env
など)を付けられますが、慣習としてvenv
や.venv
がよく使われます。.venv
のようにドットを付けると、ファイルブラウザで隠しフォルダとして表示されます。bash
python3 -m venv myenvpython3
: 仮想環境を作成する際に使うPython3の実行ファイルを指定します。-m venv
: Pythonのvenv
モジュールを実行します。myenv
: 作成する仮想環境のディレクトリ名です。
このコマンドを実行すると、現在のディレクトリ内に
myenv
というディレクトリが作成されます。このディレクトリ内に、新しく独立したPython実行環境(Pythonのバイナリ、pip、そして後でインストールするライブラリを格納する場所など)が構築されます。 -
仮想環境のアクティベート(有効化)
作成した仮想環境を使うためには、「アクティベート」する必要があります。アクティベートすることで、そのターミナルセッション内で
python
コマンドやpip
コマンドが、システムのもの(または他の仮想環境のもの)ではなく、今作成した仮想環境内のものを指すようになります。bash
source myenv/bin/activateまたは(fish シェルを使用している場合など)
bash
source myenv/bin/activate.fishまたは(csh/tcsh シェルを使用している場合など)
bash
source myenv/bin/activate.cshactivate
スクリプトを実行すると、プロンプトの表示が変わり、現在仮想環境がアクティベートされていることが示されます。通常、仮想環境の名前がプロンプトの先頭に表示されます。bash
(myenv) user@ubuntu:~/my_python_project$この状態になれば、このターミナルセッション内では仮想環境のPythonが使われます。確認してみましょう。
bash
(myenv) user@ubuntu:~/my_python_project$ which python
/home/user/my_python_project/myenv/bin/python
(myenv) user@ubuntu:~/my_python_project$ python --version
Python 3.x.x # 仮想環境作成時に指定したPython3のバージョン
(myenv) user@ubuntu:~/my_python_project$ which pip
/home/user/my_python_project/myenv/bin/pipwhich
コマンドで確認すると、/home/user/my_python_project/myenv/bin
ディレクトリ内のPythonとpipが使われていることが分かります。これは、システム全体で使われているPythonやpipとは異なる独立したものです。 -
pipを使ったパッケージのインストール
仮想環境がアクティベートされたら、Pythonのパッケージ管理ツールである
pip
を使って、必要なライブラリをインストールできます。例えば、ウェブ開発でよく使われるrequests
ライブラリをインストールする場合:bash
(myenv) user@ubuntu:~/my_python_project$ pip install requestsこのコマンドでインストールされた
requests
ライブラリは、myenv
仮想環境内にのみ存在します。他の仮想環境やシステム全体の環境には影響しません。インストールされたパッケージを確認するには
pip list
コマンドを使います。“`bash
(myenv) user@ubuntu:~/my_python_project$ pip list
Package Version
certifi …
charset-normalizer …
idna …
requests …
urllib3 …
“`注意: 仮想環境がアクティベートされている状態で
sudo pip install ...
のようにsudo
を付けてはいけません。sudo
を使うと、仮想環境ではなくシステムのPython環境にパッケージをインストールしようとしてしまいます。仮想環境内で作業している限り、sudo
は不要です。 -
仮想環境からのディアクティベート(無効化)
仮想環境での作業を終えたら、仮想環境を無効化して、システムデフォルトの環境に戻すことができます。
bash
(myenv) user@ubuntu:~/my_python_project$ deactivateプロンプトの表示が元に戻り、システムデフォルトのPython環境に戻ったことが分かります。
bash
user@ubuntu:~/my_python_project$ which python
/usr/bin/python # システムのPython実行ファイルのパス(Python2またはエラーになることが多い)
user@ubuntu:~/my_python_project$ which python3
/usr/bin/python3 # aptでインストールしたPython3これで、aptを使ったPython3のインストールと、venvによる仮想環境の基本的な使い方はマスターできました。ほとんどの初心者の方は、まずこの方法から始めるのが良いでしょう。プロジェクトごとに新しいディレクトリを作り、その中で
python3 -m venv .venv
(またはmyenv
) を実行し、source .venv/bin/activate
で有効化してから開発を進める、という流れを習慣にしましょう。
aptインストールのメリット・デメリット
- メリット:
- 最も簡単で手軽。
- Ubuntuのリポジトリから提供されるため、セキュリティや安定性が高い。
- システムの他のパッケージとの依存関係が適切に管理される。
venv
モジュールを使って簡単に仮想環境を作成できる。
- デメリット:
- インストールできるPythonのバージョンが、使用しているUbuntuのバージョンに依存する(最新版が提供されていない場合がある)。
- 複数のPythonバージョンを同時にインストールして切り替えながら使うのは難しい(システムに複数のマイナーバージョンをインストールすることは可能だが、切り替えが煩雑)。
特定のプロジェクトで特定のPythonバージョンが必須である、あるいは複数のプロジェクトで異なるPythonバージョンを使いたい、といった場合には、aptだけでは対応が難しいことがあります。その場合は、次に紹介するPPAやpyenvといった方法を検討することになります。
方法2:PPA (Personal Package Archive) を使ったインストール
aptでインストールできるPython3のバージョンは、そのUbuntuのリリース時に安定していたバージョンであることが多いです。より新しいPythonのマイナーバージョン(例: Python 3.10, 3.11など)を使いたい場合は、PPAを利用するのが一つの方法です。
PPAは、Ubuntuの公式リポジトリに含まれていないソフトウェアや、より新しいバージョンのソフトウェアを、個人やグループが提供するリポジトリです。ここでは、Pythonの新しいバージョンを提供している有名なPPAである「deadsnakes」PPAを使う方法を紹介します。
注意: PPAは非公式のリポジトリです。利用は自己責任となります。一般的には広く使われているPPAは比較的安全ですが、公式リポジトリほどの保証はありません。
手順詳細
-
PPAを追加するためのパッケージのインストール
PPAリポジトリをシステムに追加するために必要なツールをインストールします。
bash
sudo apt update
sudo apt install software-properties-common -
deadsnakes PPAリポジトリの追加
以下のコマンドを実行して、deadsnakes PPAをシステムのAPTソースリストに追加します。
bash
sudo add-apt-repository ppa:deadsnakes/ppaこのコマンドを実行すると、PPAの情報を取得し、システムに追加するか確認を求められます。Enterキーを押して続行してください。
-
パッケージリストの更新
新しいリポジトリを追加したら、再度パッケージリストを更新して、追加したPPAに含まれるソフトウェア情報を取得する必要があります。
bash
sudo apt update -
特定のPythonバージョンのインストール
update
が完了すると、deadsnakes PPAで提供されている様々なPythonバージョンをaptでインストールできるようになります。インストール可能なバージョンは、PPAの内容によって異なりますが、比較的新しいバージョン(例: python3.9, python3.10, python3.11など)が提供されていることが多いです。インストールしたい特定のバージョンを指定してインストールします。例えば、Python 3.10をインストールしたい場合:
bash
sudo apt install python3.10venvモジュールも同時にインストールしておくのが良いでしょう。
bash
sudo apt install python3.10-venv必要に応じて、開発用ヘッダーファイルなどもインストールしておくと、一部のライブラリ(特にネイティブコードを含むもの)のビルド時に役立ちます。
bash
sudo apt install python3.10-dev -
インストールされたバージョンの確認
インストールした特定のバージョンのPythonが利用可能か確認します。
bash
python3.10 --versionPython 3.10.x
aptでインストールしたデフォルトの
python3
とは別に、python3.10
というコマンドで新しいバージョンが実行できることが分かります。 -
venvを使った仮想環境の利用
PPAでインストールした特定のバージョンのPythonを使って仮想環境を作成する場合も、基本的な手順はaptでインストールした場合と同じです。仮想環境を作成したいディレクトリに移動し、作成に使用したいPythonのバージョンを指定します。
bash
cd my_new_project
python3.10 -m venv myenv_3_10作成した仮想環境をアクティベートします。
bash
source myenv_3_10/bin/activateアクティベートされた仮想環境内で
python
コマンドを実行すると、指定したPython 3.10が使われていることが確認できます。bash
(myenv_3_10) user@ubuntu:~/my_new_project$ python --version
Python 3.10.x
PPAインストールのメリット・デメリット
- メリット:
- aptコマンドと同じように手軽にインストールできる。
- Ubuntuの公式リポジトリにはない、より新しいPythonバージョンを利用できる。
- デメリット:
- PPAは非公式であり、公式リポジトリほどの信頼性やセキュリティ保証はない(有名なPPAは比較的安全ではある)。
- システムに複数のPythonバージョンがインストールされることになるが、どのバージョンを使うかはコマンド名(
python3.8
,python3.10
など)で区別する必要があり、管理が少し煩雑になる可能性がある。 - 依然としてシステム全体にインストールされるため、異なるプロジェクトで同じPythonバージョンを使う場合でも、仮想環境は必須となる。
PPAは、aptよりも新しいバージョンが必要で、かつpyenvのようなバージョン管理ツールを導入するのが面倒、という場合に便利な選択肢となり得ます。
方法3:pyenvを使ったインストールとバージョン管理
もし、複数のプロジェクトで異なるPythonバージョンを頻繁に切り替えて使いたい、あるいはUbuntuのバージョンに依存せずに特定のPythonバージョン(過去のバージョンなども含めて)を使いたい、という場合は、pyenv
というツールを使うのが最も強力で柔軟な方法です。
pyenvは、システムにインストールされたPythonのバージョンを切り替えたり、新しいバージョンをインストールしたりするためのツールです。システムのPython環境とは完全に分離して動作するため、システムの安定性を損なう心配がありません。また、仮想環境ツールである venv
や virtualenv
と組み合わせて使うことで、バージョン管理と仮想環境管理を同時に行うことができます。
pyenvはaptやPPAのようにシステム全体にPythonをインストールするのではなく、ユーザーのホームディレクトリ以下にPython環境を構築します。そのため、sudo
なしでPythonバージョンのインストールや切り替えができます。
手順詳細
pyenvのインストールは、aptを使った方法と比べると少し複雑ですが、一度セットアップしてしまえば非常に便利です。
-
必要な依存関係のインストール
pyenvが様々なバージョンのPythonをソースコードからビルドするために、いくつかの開発ツールやライブラリが必要です。まずはこれらをaptでインストールします。
bash
sudo apt update
sudo apt upgrade -y # -y オプションを付けると確認なしで進行しますbash
sudo apt install -y make build-essential libssl-dev zlibg-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-devmake
,build-essential
: ソフトウェアをコンパイルするために必要な基本的なツール群。libssl-dev
,zlibg-dev
,libbz2-dev
,libreadline-dev
,libsqlite3-dev
,llvm
,libncursesw5-dev
,xz-utils
,tk-dev
,libxml2-dev
,libxmlsec1-dev
,libffi-dev
,liblzma-dev
: Python本体や、多くのPythonパッケージ(特にデータ分析や科学技術計算関連)が必要とするライブラリやヘッダーファイル。これらがないと、Pythonのビルドが失敗したり、特定の機能(SSL通信、圧縮、readline機能など)が使えなかったりします。wget
,curl
: ファイルをダウンロードするためのコマンド。pyenvがPythonのソースコードをダウンロードする際に使います。
-
pyenvのインストール
pyenvの公式ドキュートでは、インストーラスクリプトを使う方法と、GitHubリポジトリからクローンする方法が紹介されています。ここでは、手動で制御しやすいGitHubからのクローン方法を説明します。
まず、Gitがインストールされていることを確認します(Ubuntuにはデフォルトでインストールされていることが多いですが、念のため)。
bash
sudo apt install git次に、pyenvをホームディレクトリの
.pyenv
という隠しディレクトリにクローンします。bash
git clone https://github.com/pyenv/pyenv.git ~/.pyenv -
環境変数の設定
pyenvをどのディレクトリからでも使えるようにするため、そしてpyenvが管理するPythonバージョンがシステムのPythonよりも優先されるようにするため、いくつかの環境変数を設定する必要があります。これらの設定は、シェルの設定ファイル(bashを使っている場合は
~/.bashrc
、zshを使っている場合は~/.zshrc
など)に書き込みます。最も一般的なbash (
~/.bashrc
) を例に説明します。以下の行をファイルの一番最後に追加します。echo
コマンドを使って追記するのが簡単です。“`bash
pyenv の設定
echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bashrc
echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.bashrcpyenv init コマンドをシェル起動時に実行する設定
この設定は、pyenv がシェルをフックして PATH を変更したり、shim を設定したりするために必要です。
eval “$(pyenv init –path)” はパスに追加する部分、eval “$(pyenv init -)” はシェルをフックする部分です。
以下は、コマンドが存在する場合のみ実行する安全な記述です。
echo -e ‘if command -v pyenv 1>/dev/null 2>&1; then\n eval “$(pyenv init –path)”\nfi’ >> ~/.bashrc
echo -e ‘if command -v pyenv 1>/dev/null 2>&1; then\n eval “$(pyenv init -)”\nfi’ >> ~/.bashrcpyenv-virtualenv プラグイン用の設定 (後述)
echo -e ‘if command -v pyenv virtualenv-init 1>/dev/null 2>&1; then\n eval “$(pyenv virtualenv-init -)”\nfi’ >> ~/.bashrc
“`メモ:
>> ~/.bashrc
は、コマンドの出力を~/.bashrc
ファイルの末尾に追記するという意味です。echo -e
はエスケープシーケンス(\n
改行コードなど)を有効にするためのオプションです。 -
シェル設定ファイルの再読み込み
設定を有効にするには、現在のターミナルセッションで設定ファイルを再読み込みするか、ターミナルを一度閉じて再度開く必要があります。
bash
source ~/.bashrcまたは、より確実な方法として、新しいシェルプロセスを開始します。
bash
exec $SHELL -
pyenvコマンドが使えるか確認
設定が正しく行われたか、pyenvコマンドが使えるか確認します。
bash
pyenv --versionバージョン情報が表示されれば成功です。
pyenv x.x.x
もし
pyenv: command not found
のようなエラーが出る場合は、環境変数の設定や再読み込みがうまくいっていない可能性があります。.bashrc
ファイルの内容や、source
コマンドの実行を確認してください。 -
インストール可能なPythonバージョンの確認
pyenvを使ってインストールできるPythonのバージョン一覧を確認できます。
bash
pyenv install --list非常に長いリストが表示されます。これは、公式のC Pythonだけでなく、Anaconda, Miniconda, Jython, PyPyなどの様々な実装や、非常に古いバージョンから最新のリリース候補版まで含まれています。
-
特定のPythonバージョンのインストール
リストの中からインストールしたいバージョンを選び、以下のコマンドでインストールします。例えば、Python 3.9.7をインストールする場合:
bash
pyenv install 3.9.7注意: pyenvは通常、Pythonをソースコードからビルドします。このため、コンピューターの性能や選択したバージョンによっては、インストールに数分から数十分かかることがあります。気長に待ちましょう。途中でエラーが出る場合は、手順1で必要な依存関係がすべてインストールされているか確認してください。
他のバージョンも同様にインストールできます。例えば、最新安定版の3.11.xや、長期サポート版の3.8.xなどもインストールしておくと便利かもしれません。
bash
pyenv install 3.11.5 # 例:新しいバージョン
pyenv install 3.8.16 # 例:古いLTSバージョン -
インストールされたバージョンの確認
pyenvでインストールされたPythonのバージョン一覧を確認するには、以下のコマンドを使います。
bash
pyenv versionsシステムに元からあるPythonも表示され、pyenvでインストールしたバージョンにはアスタリスク
*
が付いていません。* system (set by /home/user/.pyenv/version)
3.9.7
3.11.5この例では、システムのPythonがデフォルトで使われており、他に3.9.7と3.11.5がインストールされていることが分かります。
-
Pythonバージョンの切り替え
pyenvの最も便利な機能は、簡単にPythonのバージョンを切り替えられることです。切り替え方法にはいくつか種類があります。
-
グローバル設定 (
pyenv global <version>
): どのディレクトリにいてもデフォルトで使われるPythonバージョンを設定します。これは、システムのPythonを置き換えるような効果を持ちますが、システムのPython自体を変更するわけではありません。bash
pyenv global 3.11.5設定後、再度
pyenv versions
を実行すると、3.11.5の横に*
が付いているはずです。bash
system
* 3.11.5 (set by /home/user/.pyenv/version)
3.9.7この状態で
python --version
やwhich python
を実行すると、pyenvが管理するPython 3.11.5が使われていることが確認できます。“`bash
python –versionPython 3.11.5
which python
/home/user/.pyenv/shims/python
“`
/home/user/.pyenv/shims/python
は、pyenvが用意した「シム (shim)」と呼ばれる仕組みです。ユーザーがpython
コマンドを実行すると、まずシムが実行され、pyenvの設定に基づいてどのバージョンのPythonを実行すべきかを判断し、適切なバージョンのPython本体に処理を振り分けます。これにより、ユーザーはバージョンを意識せずに常にpython
コマンドを使うことができます。 -
ローカル設定 (
pyenv local <version>
): 特定のディレクトリ(プロジェクトのルートディレクトリなど)とそのサブディレクトリ内でだけ有効なPythonバージョンを設定します。これが最も一般的な使い方です。プロジェクトごとに異なるPythonバージョンを使いたい場合に利用します。プロジェクトディレクトリに移動します。
bash
cd ~/my_python_projectこのディレクトリとそのサブディレクトリで使いたいPythonバージョンを設定します。
bash
pyenv local 3.9.7このコマンドを実行すると、
.python-version
というファイルがカレントディレクトリに作成され、そのファイルの中にバージョン番号(例:3.9.7
)が書き込まれます。pyenvはこのファイルを見て、そのディレクトリで使うべきPythonバージョンを判断します。このディレクトリにいる間だけ、設定したバージョンが使われます。
bash
user@ubuntu:~/my_python_project$ python --version
Python 3.9.7
user@ubuntu:~/my_python_project$ which python
/home/user/.pyenv/shims/python別のディレクトリに移動すると、グローバル設定(または親ディレクトリのローカル設定)に戻ります。
bash
cd ~
user@ubuntu:~$ python --version
Python 3.11.5 # グローバル設定のバージョンに戻った -
シェル設定 (
pyenv shell <version>
): 現在開いているターミナルセッション内でのみ有効なPythonバージョンを設定します。新しいターミナルを開くと解除されます。一時的に特定のバージョンを試したい場合などに便利です。bash
pyenv shell 3.8.16このセッションを閉じると設定は失われます。
バージョンの優先順位:
shell
>local
>global
>system
の順に優先されます。 -
-
pyenvと仮想環境 (pyenv-virtualenv)
pyenvは、仮想環境管理ツールと連携するプラグイン
pyenv-virtualenv
を提供しています。これを使うと、特定のPythonバージョンに基づいた仮想環境を簡単に作成し、pyenvのバージョン管理と連携させてアクティベート/ディアクティベートできるようになります。-
プラグインのインストール: pyenvのリポジトリをクローンしたのと同様に、
pyenv-virtualenv
プラグインをクローンします。bash
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenvpyenvをインストールした際に
.bashrc
に追加した以下の行が、このプラグインを有効化します。“`bash
pyenv-virtualenv プラグイン用の設定
echo -e ‘if command -v pyenv virtualenv-init 1>/dev/null 2>&1; then\n eval “$(pyenv virtualenv-init -)”\nfi’ >> ~/.bashrc
“`設定を有効にするために、再度シェルを再読み込みするか、開き直します。
bash
exec $SHELL -
仮想環境の作成:
pyenv virtualenv <python_version> <env_name>
の形式で仮想環境を作成します。例えば、Python 3.9.7に基づいたmy-project-env
という仮想環境を作成する場合:bash
pyenv virtualenv 3.9.7 my-project-envこれで、pyenvが管理するバージョンリストに新しい仮想環境が追加されます。
pyenv versions
で確認できます。bash
system
3.11.5
3.9.7
3.9.7/envs/my-project-env
my-project-env # pyenv-virtualenv が作成した仮想環境の名前my-project-env
は、基になったバージョン3.9.7
に紐づいています。 -
仮想環境のアクティベート: 作成した仮想環境をアクティベートするには、
pyenv activate <env_name>
コマンドを使います。bash
pyenv activate my-project-envまたは、
pyenv local <env_name>
コマンドを使って、特定のディレクトリに入ったときに自動的にその仮想環境がアクティベートされるように設定することもできます。この方法が最も一般的で便利です。プロジェクトディレクトリに移動し、ローカルバージョンとして仮想環境名を指定します。
bash
cd ~/my_python_project
pyenv local my-project-envこれで、
my_python_project
ディレクトリにいる間は、自動的にmy-project-env
仮想環境が有効になります。プロンプトの表示も仮想環境名を含むものに変わります。bash
(my-project-env) user@ubuntu:~/my_python_project$ python --version
Python 3.9.7 # 仮想環境作成時に指定したバージョン
(my-project-env) user@ubuntu:~/my_python_project$ which python
/home/user/.pyenv/versions/3.9.7/envs/my-project-env/bin/python仮想環境内での
pip install
やその他の操作は、venv単体の場合と同様に、その仮想環境内でのみ有効です。 -
仮想環境のディアクティベート: 仮想環境から抜けるには
pyenv deactivate
コマンドを使います。bash
(my-project-env) user@ubuntu:~/my_python_project$ pyenv deactivateローカル設定で仮想環境を有効にしている場合(
pyenv local <env_name>
で設定した場合)、ディレクトリから移動すると自動的にディアクティベートされます。 -
仮想環境の削除: 不要になった仮想環境は
pyenv uninstall <env_name>
で削除できます。bash
pyenv uninstall my-project-env
-
pyenvインストールのメリット・デメリット
- メリット:
- 複数のPythonバージョンを簡単にインストールし、切り替えて使える。
- システムのPython環境に影響を与えないため安全。
- プロジェクトごとに異なるPythonバージョンと仮想環境を設定できる。
- Pythonのビルドオプションなどを細かく制御可能(上級者向け)。
pyenv-virtualenv
プラグインを使えば、バージョン管理と仮想環境管理をシームレスに行える。
- デメリット:
- aptに比べてインストールと初期設定の手順がやや複雑。
- Pythonバージョンをインストールする際に、ソースコードからのビルドが必要になる場合が多く、時間がかかることがある。
- 必要な依存関係のインストールが必要。
pyenvは、本格的に複数のPythonプロジェクトに取り組むようになると、その威力を発揮します。最初はapt + venvで始めて、必要になったらpyenvに移行するのも良いでしょう。
方法4:ソースコードからビルド (初心者には非推奨)
Pythonの公式サイト (python.org) からソースコードをダウンロードし、自分でコンパイルしてインストールする方法です。
なぜ初心者には非推奨なのか?
- 手順が複雑で、多くの依存ライブラリを手動でインストールする必要がある。
- コンパイルエラーが発生しやすく、原因特定と対処が難しい。
- システムの既存のPython環境を誤って上書きしてしまうリスクがある(特に
make install
を使った場合)。 - 通常、aptやpyenvで十分なニーズを満たせる。
どのような場合に使うか
- Pythonの最新の開発版を試したい場合。
- 特定のコンパイルオプションを有効にしてビルドしたい場合(例: 性能最適化、特定のライブラリ連携)。
- 特定の環境に合わせたカスタマイズが必要な場合。
手順の概要
- 必要なビルドツールや依存ライブラリ(上述のpyenvの依存関係と類似)をインストールする。
- Pythonの公式サイトから、目的のバージョンのソースコード(通常は
.tar.xz
ファイル)をダウンロードする。 - ダウンロードしたファイルを展開する。
- 展開したディレクトリに移動し、設定スクリプトを実行する (
./configure --prefix=/opt/pythonX.Y
のようにインストール先を指定することが多い)。 - コンパイルを実行する (
make
)。 -
インストールを実行する (
sudo make altinstall
)。ここが重要です: 絶対に
sudo make install
ではなくsudo make altinstall
を使ってください。make install
はシステムのデフォルトのpython3
コマンドなどを上書きしてしまう可能性がありますが、make altinstall
は既存のPython環境を壊さずにインストールします。インストールされる実行ファイル名にはバージョン番号が含まれます(例:python3.9
,pip3.9
)。 -
インストールされたバージョンの実行ファイル(例:
/opt/python3.9/bin/python3.9
)を指定して、venvなどで仮想環境を作成し、それを利用します。
ソースコードビルドのメリット・デメリット
- メリット:
- 最新のバージョンや開発版を利用できる。
- コンパイルオプションによる細かいカスタマイズが可能。
- デメリット:
- 手順が複雑で難しい。
- 依存関係の問題が発生しやすい。
- ビルドに時間がかかる。
- システムのPython環境を壊すリスクがある。
- バージョン管理が手動になる。
初心者の方は、この方法はスキップして、aptやpyenvを使うことを強くお勧めします。
Python開発環境のセットアップ
Python3のインストールと仮想環境の使い方が分かったら、いよいよコードを書く準備をしましょう。
コードエディタまたはIDEの選択
Pythonコードを書くためには、高機能なテキストエディタや統合開発環境 (IDE) を使うのが一般的です。これらはコードの入力補完、シンタックスハイライト、デバッグ機能など、開発効率を大幅に向上させる機能を提供します。
いくつかの人気のある選択肢を紹介します。
- VS Code (Visual Studio Code): Microsoftが開発している無料かつ高機能なコードエディタです。豊富な拡張機能があり、Python開発環境も非常に充実しています。クロスプラットフォームで動作し、多くの開発者に利用されています。初心者にも扱いやすいインターフェースを持っています。
- PyCharm: JetBrainsが開発しているPythonに特化した強力なIDEです。コード補完、デバッグ、テスト、フレームワーク連携など、プロの開発に必要なあらゆる機能が揃っています。有料版(Professional)と無料版(Community)があります。無料版でも個人開発や学習には十分な機能が提供されています。
- Sublime Text: 軽量で高速なテキストエディタです。多くのプログラミング言語に対応しており、豊富なパッケージを追加することで機能を拡張できます。シンプルさを好む開発者に人気があります。
- Vim / Emacs: 高度にカスタマイズ可能な古典的なテキストエディタです。習得には時間がかかりますが、使いこなせば非常に効率的にコーディングできます。ターミナル上でも動作するため、サーバー開発などで重宝されます。初心者にはハードルが高いかもしれません。
初心者には、多機能で使いやすいVS Codeか、Pythonに特化したPyCharm Community Editionをお勧めします。
VS CodeのインストールとPython拡張機能
VS Codeを例に、簡単なセットアップ方法を紹介します。
-
VS Codeのインストール: Ubuntuでは、ソフトウェアセンターからインストールするか、公式ウェブサイトから
.deb
ファイルをダウンロードしてインストールできます。あるいは、以下のコマンドでインストールすることも可能です。bash
sudo apt update
sudo apt install code # または code-insiders (Insiders版の場合)またはSnap Storeからインストールすることもできます。
bash
sudo snap install --classic code -
Python拡張機能のインストール: VS Codeを起動したら、左側のアクティビティバーにある拡張機能アイコン(四角が3つと、離れた場所に1つ)をクリックします。検索バーに「Python」と入力し、Microsoftが提供する公式の「Python」拡張機能を見つけてインストールします。
この拡張機能をインストールすると、Pythonコードのシンタックスハイライト、コード補完 (IntelliSense)、フォーマット、デバッグ、テスト実行、そして仮想環境の自動認識と切り替えなどの機能が利用できるようになります。
-
仮想環境の選択: VS CodeでPythonファイルを開くと、通常、ウィンドウの左下隅に現在選択されているPythonインタープリター(実行環境)が表示されます。ここをクリックすると、システムにあるPythonや、作成した仮想環境のリストが表示され、簡単に切り替えることができます。プロジェクトディレクトリでVS Codeを開けば、作成した仮想環境(例:
.venv
ディレクトリ)を自動的に検出し、使用を推奨してくれます。
ターミナルの使い方補足
開発を進める上で、ターミナル操作は避けて通れません。よく使う基本的なコマンドをいくつか覚えておきましょう。
pwd
: 現在の作業ディレクトリ(カレントディレクトリ)を表示します。ls
: 現在のディレクトリにあるファイルやディレクトリの一覧を表示します (ls -l
で詳細表示、ls -a
で隠しファイルも表示)。cd <directory>
:<directory>
に移動します (cd ..
で一つ上のディレクトリへ、cd ~
でホームディレクトリへ)。mkdir <directory_name>
:<directory_name>
という新しいディレクトリを作成します。touch <file_name>
:<file_name>
という空のファイルを作成します。rm <file_name>
:<file_name>
というファイルを削除します (rm -r <directory_name>
でディレクトリとその内容を再帰的に削除、注意して使いましょう!)。cp <source> <destination>
:<source>
を<destination>
にコピーします (cp -r
でディレクトリをコピー)。mv <source> <destination>
:<source>
を<destination>
に移動または名前変更します。clear
: ターミナル画面をきれいにします。
これらのコマンドを使いこなせるようになると、ファイルの作成、編集、移動、削除などが効率的に行えるようになります。
よくある質問 (FAQ)
python
コマンドと python3
コマンドの違いは?
Ubuntuでは、歴史的な理由から python
コマンドはデフォルトでPython 2を指していることが多いです(新しいバージョンでは存在しないか、Python 3へのシンボリックリンクになっていることもあります)。一方、python3
コマンドはaptでインストールしたPython 3の実行ファイルを指します。
開発目的でPythonを使う場合、Python 3が現在の標準であるため、以下のいずれかの方法でPython 3を使うようにします。
- 常に
python3
コマンドを使用する。 - apt+venv または pyenv を使い、仮想環境内で作業する。仮想環境をアクティベートすると、その環境内のPython 3が
python
コマンドで実行されるようになります。 - pyenv を使い、グローバルまたはローカルのPythonバージョンをPython 3に設定する。この場合も
python
コマンドでPython 3が実行されます。
システムの python
コマンドのリンク先を直接変更するような操作は、システムに影響を与える可能性があるため避けるべきです。
pip
コマンドと pip3
コマンドの違いは?
aptでPython 3をインストールすると、通常 pip3
コマンドも一緒にインストールされます。これは、システムにインストールされたPython 3環境に対応するpipです。
bash
sudo apt install python3-pip
(Python 3.9以降では、python3
パッケージにpipが含まれていることが多いです。もし pip3
が見つからない場合は上記コマンドでインストールしてください。)
一方、もしシステムにPython 2が入っている場合、pip
コマンドはPython 2環境に対応するpipを指している可能性があります。
仮想環境内では、常にその仮想環境に対応するPythonとpipが使われます。仮想環境をアクティベートした後に pip
コマンドを実行すると、それは仮想環境内のpipを指します。
“`bash
仮想環境をアクティベート
source myenv/bin/activate
仮想環境内のpipを使ってパッケージをインストール
(myenv) user@ubuntu:~/my_python_project$ pip install <パッケージ名>
“`
開発時には、仮想環境をアクティベートしてから pip
コマンドを使うのが最も推奨される方法です。 これにより、パッケージが仮想環境内にのみインストールされ、システム環境に影響を与えません。仮想環境がアクティベートされている状態であれば、pip3
ではなく pip
を使うのが一般的です。
sudo pip install ...
はダメなの?
特別な理由がない限り、sudo pip install ...
コマンドは使うべきではありません。
sudo
を付けて pip install
を実行すると、パッケージがシステム全体のPython環境にインストールされてしまいます。これは、以下のような問題を引き起こす可能性があります。
- システムのPython環境に不要なパッケージが追加され、管理が複雑になる。
- 異なるプロジェクトで同じパッケージの異なるバージョンが必要になった場合に、バージョン衝突が発生する。
- システムのPython環境が破壊され、Ubuntuの動作に影響を与える可能性がある。
パッケージのインストールは、必ずプロジェクトごとの仮想環境をアクティベートしてから、sudo
なしで pip install <パッケージ名>
と実行してください。 これにより、パッケージはその仮想環境内にのみインストールされ、他の環境に影響を与えません。
エラーが出た場合の対処法は?
インストールやコマンド実行中にエラーが発生した場合、慌てずに以下のステップを試してみてください。
- エラーメッセージをよく読む: ターミナルに表示されたエラーメッセージは、何が問題なのかを教えてくれる重要な情報源です。英語で表示されることが多いですが、エラーの種類(SyntaxError, ModuleNotFoundError, PermissionErrorなど)や、エラーが発生したファイルのパス、行番号などが含まれています。
- エラーメッセージを検索する: エラーメッセージ全体や、エラーメッセージの一部(特に重要な部分、例:
ModuleNotFoundError: No module named 'requests'
)をコピーして、インターネットで検索します。「Ubuntu Python [エラーメッセージ]」のように検索すると、同じ問題に遭遇した他の開発者の質問や解決策が見つかることが多いです。 - 依存関係を確認する: 特にソースコードからのビルドや、特定のライブラリのインストール時にエラーが出る場合、必要な依存ライブラリや開発ツールがインストールされていないことが原因である可能性があります。
sudo apt install ...
コマンドで不足しているパッケージを追加してみてください。 - 仮想環境を確認する: 意図したPythonバージョンやライブラリが使われているか、仮想環境が正しくアクティベートされているか確認してください。
which python
やpip list
コマンドが役立ちます。 - コマンドのタイプミスを確認する: 一文字でも間違っているとコマンドは認識されません。
どうしても解決しない場合は、エラーメッセージと試したこと、使用しているUbuntuやPythonのバージョンなどの情報を添えて、オンラインフォーラム(例: Stack Overflow)などで質問することも有効です。
インストールしたPythonをアンインストールしたい場合は?
-
aptでインストールした場合:
bash
sudo apt remove python3.x # 特定のバージョン(例: python3.8, python3.10)
sudo apt autoremove # 不要になった依存関係を削除 -
pyenvでインストールした場合:
bash
pyenv uninstall x.x.x # pyenvでインストールしたバージョン名(例: 3.9.7)仮想環境も同様にアンインストールできます。
bash
pyenv uninstall <env_name> # pyenv-virtualenvで作成した仮想環境名 -
ソースコードからビルドした場合:
インストール方法によって削除方法が異なります。通常はインストールディレクトリを削除することになりますが、依存関係などを考慮すると手動でのアンインストールは複雑になる可能性があります。基本的に非推奨です。
また、仮想環境は単なるディレクトリなので、仮想環境ディレクトリ(例: myenv
や .venv
)を削除すればアンインストール(削除)完了です。
bash
rm -r myenv
まとめ
この記事では、UbuntuにPython3をインストールするための様々な方法を、初心者向けに詳しく解説しました。
- UbuntuにはデフォルトでPythonが入っていますが、開発には別途インストールし、仮想環境を使うのが安全で推奨される方法です。
- 最も簡単で安定した方法は、aptパッケージマネージャー を使うことです (
sudo apt install python3
)。aptでインストールしたPython3とpython3-venv
パッケージを使えば、標準機能で仮想環境 (python3 -m venv <env_name>
) を構築できます。 - より新しいPythonバージョンが必要な場合は、PPA (
ppa:deadsnakes/ppa
など) を利用するという選択肢もありますが、非公式である点に注意が必要です。 - 複数のPythonバージョンを頻繁に切り替えて使いたい、あるいはプロジェクトごとに異なるバージョンを管理したい場合は、pyenv というバージョン管理ツールが非常に強力です。初期設定は少し手間がかかりますが、その後の開発が格段に楽になります。pyenvは
pyenv-virtualenv
プラグインと組み合わせることで、バージョン管理と仮想環境管理をシームレスに行えます。 - ソースコードからのビルド は最も柔軟ですが、手順が複雑で初心者には非推奨です。
- 開発効率を上げるために、VS CodeやPyCharmのようなコードエディタ/IDEを導入し、Python拡張機能を活用しましょう。
- 仮想環境をアクティベートした状態で、
sudo
なしでpip install
を行うことが重要です。
まずはaptを使ってPython3をインストールし、venvで仮想環境を作り、簡単なPythonプログラムを書いてみることから始めるのがお勧めです。Pythonの学習を進め、複数のプロジェクトに関わるようになったら、pyenvの導入を検討すると良いでしょう。
Pythonのインストールは、あなたのプログラミング学習の最初の一歩です。ここから、無限の可能性が広がっていきます。簡単なチュートリアルを試したり、興味のある分野のライブラリを使ってみたりして、Pythonの世界を楽しんでください。
この記事が、あなたのUbuntuでのPython開発の素晴らしいスタートに役立てば幸いです。
免責事項
本記事に記載された手順やコマンドは、執筆時点(2023年末時点)のUbuntuの最新LTSバージョン(例: 22.04 LTS)およびPythonの状況に基づいていますが、OSのアップデートやソフトウェアのバージョンアップにより、手順や結果が異なる場合があります。コマンドの実行はご自身の責任において行ってください。重要な設定ファイルを変更する前には、バックアップを取ることをお勧めします。