プログラミング言語Pythonは1991年に発表されました。この間、バージョンごとにさまざまな機能が追加されたり削除されたりしながら、多くの変化を遂げてきました。これらの変更のために、Pythonの新しいバージョンで書かれたソフトウェアは、古いバージョンで動作する場合としない場合があります。

このバージョンの不一致は開発者の経験と生産性を犠牲にするので、コンピュータにインストールされているPythonのバージョンを管理する方法を学んで、すべてのバージョンを効率的に実行することが重要です。このチュートリアルでは、その方法を紹介します。

異なる Python バージョンをインストールする方法

Python のバージョン管理の最も簡単な方法は、ネイティブパッケージマネージャを使用することです。PythonはほとんどのLinuxデスクトップで箱から出してインストールされています。Pythonには2つのメジャーなバージョンがあります。Python2とPython3です。この2つのバージョンがあなたのコンピュータで利用可能かどうかは、以下のコマンドで確認することができます。

# Python3のインストールを確認する
python3 --バージョン
 
# python2 のインストールを確認する
python2 --バージョン

プリインストールされているバージョン以外のPythonをインストールするには、Ubuntuベースのディストリビューションでは、deadsnake PPA (Personal Package Archive)を使用します。

PPAを有効にしていない場合は、以下のコマンドで有効にしてください。

sudo apt-get install ソフトウェア-プロパティ-共通

このコマンドを使用して、deadsnake PPAをaptのソースに追加してください。

sudo add-apt-repository ppa:deadsnakes/ppa

これで、以下のコマンドで好きなバージョンのPythonをインストールすることができます。3.10 “は必ず該当するバージョン番号に置き換えてください。

sudo apt update
sudo apt install python3.10

新しいバージョンのPythonが正しくインストールされたかどうかを確認するには、--versionフラグを使用します。

python3.10 --バージョン

この時点でシステムのPythonのバージョンを確認すると、プリインストールされたバージョンの番号が表示されたままであることを忘れないでください。

新しくインストールしたバージョンのPythonをデフォルトとして使用したい場合は、update-alternativesコマンドを使用すると、同じソフトウェアの異なるバージョンに対する優先順位を設定することができます。以下のコマンドを実行して、python3.10を最も優先度の高いPythonのバージョンとして設定します。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2
 
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

2番目のコマンドは、プリインストールされているPythonのバージョンにpython3.8をマークします。

以下のコマンドで、異なるPythonのバージョンを切り替えることができます。

sudo update-alternatives --config python

仮想環境によるPythonプロジェクトの管理

Python は依存関係を管理するのが苦手です。Pythonのライブラリやパッケージをインストールするために、デフォルトのパッケージインストーラであるpipやpip3を使用すると、パッケージがグローバルにインストールされます。LinuxにはPythonがプリインストールされており、OSを動かすために様々なパッケージを使用するため、手動でグローバルスコープにインストールしたパッケージはその機能を停止させる可能性があります。そこで便利なのが仮想環境です。これは、メインのセットアップから独立した独自のツールやライブラリを持つ、孤立したPython環境です。仮想環境は、依存関係を最小限に抑えた隔離された部屋だと考えてください。

仮想環境を使用しない場合、プロジェクトで使用したパッケージのバージョンを管理することができず、別のマシンでソフトウェアを実行しようとしたときに問題が発生します。そのため、Pythonのプロジェクトでは仮想環境を利用することが推奨されます。

Venv による仮想環境の作成

VenvはPythonで仮想環境を作成するための推奨される方法であり、プリインストールされています。もし、 venv` を使ったことがなければ、まず、以下のコマンドで依存関係をインストールする必要があります。コマンドの中の python3.10 をインストールした Python のバージョンに変更してください。

sudo apt update
sudo apt install python3.10-venv

次に、venv パッケージを使用して新しい仮想環境を作成します。ここでは、仮想環境を “venv” と名付けました。好きな名前をつけてください。

python3 -m venv venv
 
# mte という名前の仮想環境を作ってみましょう。
python3 -m venv mte # mte という名前の仮想環境を作ってみましょう。

仮想環境を作成したら、環境変数 venv とコマンドをソースとして、仮想環境を有効にします。

ソース venv/bin/activate

これで、ターミナルのプロンプトに (vnev) というプレフィックスが表示されます。これは、仮想環境が有効になって、依存関係をインストールする準備が整ったことを意味します。新しく作成した仮想環境内に “requests” という新しい依存関係をインストールしましょう。

python -m pip install requests

仮想環境を無効にするには、仮想環境内でdeactivateを実行します。

deactivate

Virtualenv による仮想環境の作成

virtualenv は Python の仮想環境を作成するための最も一般的なツールです。これは venv のスーパーセットで、 virtualenvvenv ができることすべてとそれ以上のことができます。

virtualenvを使用すると、異なるバージョンの Python で異なる仮想環境を作成することができます。また、venv` パッケージにはない機能として、プロジェクト内で同じパッケージの異なる特定のバージョンを使用することができます。

virtualenv には venv に似た仮想環境を作成するためのコマンドがあります。

virtualenv venv

上記のコマンドを実行すると、venv という名前の新しい仮想環境が作成されます。仮想環境を有効にするには、activate ファイルをソースにします。

ソース venv/bin/activate

これで、ターミナルのプロンプトに (venv) というプレフィックスが表示され、仮想環境が起動したことがわかります。

異なるバージョンのPythonで仮想環境を作成するには、 --python または -p フラグを使用して、Pythonの実行ファイルの場所を指定する必要があります。例えば、非常に古いバージョンのPythonであるPython 2.6で仮想環境を作成する場合は、以下のようなコマンドになります。

virtualenv --python="/usr/bin/python2.6" venv

Miniconda/Anacondaで仮想環境を作る

Condaはpipのようなパッケージマネージャです。しかし、pipとは異なり、Condaは他の多くのプログラミング言語をサポートし、仮想環境を作成するために異なるアプローチを取ります。Condaはpipとは独立して開発されています。

Minicondaパッケージをインストールすることで、Condaを使用することができます。データサイエンスや機械学習が好きな方は、データサイエンス関連のパッケージを全て含むAnacondaパッケージをインストールすることも可能です。

LinuxマシンにMinicondaをインストールするには、該当するPythonバージョン用のMinicondaをダウンロードし、ターミナルで以下のシェルスクリプトを実行するとMinicondaが自動的にセットアップされます。

./Miniconda3<バージョン名はここにあります>.sh

インストール後、“base “と呼ばれるデフォルトのMiniconda環境が作成されます。conda install` コマンドを実行すると、要求されたパッケージの最新版がその環境内にインストールされます。もし、Conda環境が有効になっていない場合は、このコマンドを使って有効にしてください。

conda activate base

Condaは異なるPythonバージョン用の環境を簡単に作ることができます。あなたはコマンドで正しいPythonのバージョンを指定するだけでいいのです。するとCondaは自動的にあなたのために全ての依存関係をダウンロードし、インストールし、セットアップしてくれます。

例えば、Conda環境でPythonバージョン3.7を使いたい場合、コマンドは以下のようになります。

conda create -n "myenv" python=3.7

この環境を作成して有効にした後、NumPy などのお気に入りのソフトウェアをインストールするために使用できます。

conda install numpy

“Python” を使って Python3 スクリプトを実行する

Pythonスクリプトを実行するには、python3ではなく、pythonと入力する方が直感的に理解しやすいでしょう。Linuxで “python-is-python3 “パッケージを使用すると、この切り替えを自動的に行うことができます。このパッケージをインストールすると、pythonコマンドは自動的に python3 バイナリを使用するようになります。

python-is-python3 “パッケージはUbuntuのリポジトリにありますので、aptパッケージマネージャでインストールすることができます。

sudo apt update
sudo apt install python-is-python3

よくある質問

異なるバージョンの Python をインストールすると、システムが壊れますか?

可能です。もしあなたのオペレーティングシステムが正しく動作するために Python の特定の機能を必要とし、それがあなたのマシンにインストールされた Python のバージョンで非推奨になった場合、あなたのマシンで不安定さが発生するかもしれません。最悪の場合、あなたのオペレーティングシステムが壊れ、新たにインストールしなければならないかもしれません。

仮想環境はどこに Python パッケージを保存しますか?

仮想環境では、ホームフォルダ内の特定の隠しディレクトリにパッケージを格納します。システムレベルのパッケージやスコープを汚さないように、またOSの動作を邪魔しないように、仮想環境ごとに異なる保存場所があります。

仮想環境を削除する方法は?

仮想環境の削除はとても簡単にできます。プロジェクトディレクトリに移動して、仮想環境と同じ名前のディレクトリを見つけます。このディレクトリには、仮想環境のすべての設定が保存されています。このディレクトリを削除すればOKです。

画像クレジット:Hitesh Choudhary via Unsplash. すべてのスクリーンショットはHrishikesh Pathakによるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。