スポンサーリンク

CentOS 7系にPython 3 の 仮想環境 (venv) を作成する

今回はvenvを利用して Python3 上に仮想環境を作成する方法を説明します。CentOS 7系にはPython 2系がインストールされおり、これがデフォルトのPythonバージョンになっています。Pythonの仮想環境を使うことで、デフォルトのPythonのバージョンがPython3の環境を作成することができます。

スポンサーリンク

1. 仮想環境について

CentOS 7系にPython 3系をインストールすることはできますが、デフォルトのPython バージョンを2系から3系に変更すると様々な不具合が起こります。CentOS 7系は yum コマンドなどOSの基本的な機能がPython 2系に依存しているからです。

そこで利用できるのがPythonの仮想環境(venv)です。 なお、venv はvirtualenvの略ではなく、別物なのでご注意ください。

venvはPython3の標準機能なので、Python3をインストールしていれば利用できます。

今回は /var/lib 配下に venv01venv02 という名前の2つの仮想環境を作成する例で説明します。

Python 3をまだインストールしていない場合は以下の記事を参考にしてください。
※参考:CentOS 7にpython3をインストールする

2. 仮想環境の作成手順

1. 仮想環境を作成する

まずは以下のコマンドを実行して、仮想環境を作成します。

コマンド

python3 -m venv [パス]

実行例

[centos@test01 ~]$ sudo python3 -m venv /var/lib/venv01

2. 作成したvenvをアクティベートする

source コマンドで venv をアクティベートします。

コマンド

source [パス] /bin/activate

実行例

[centos@test01 ~]$ source /var/lib/venv01/bin/activate
(venv01) [centos@test01 ~]$

venvをアクティベートした後、pythonのバージョンを確認すると デフォルトがPython 3がなっていることが確認できます。

(venv01) [centos@test01 ~]$ python –version
Python 3.6.8

3. venvから抜ける

venvから抜ける場合は deactivate コマンドを実行します。

(venv01) [centos@test01 ~]$ deactivate
[centos@test01 ~]$

4. venvにアプリケーションをインストールする

まず sudo -i コマンドで root ユーザーに昇格します。

[centos@test01 ~]$ sudo -i
[root@test01 ~]#

次に source コマンドで仮想環境にログインします。

[root@test01 ~]# source /var/lib/venv01/bin/activate
(venv01) [root@test01 ~]#

仮想環境にアプリケーションをインストールするときは pip3 コマンドを使いますが、最初にこのコマンド自体をアップグレードしておきましょう。
※pipコマンドの前にはsudo を付加しないようにしてください。仮想環境ではなく、グローバル環境(元のLinux環境)が作業の対象になってしまいます。

(venv01) [root@test01 ~]# pip3 install –upgrade pip

pip3 コマンドのアップグレードが完了したら、任意のアプリケーションをインストールします。ここではdjangoというアプリケーションをインストールしています。
※繰り返しになりますが、pipコマンドの前にはsudo を付加しないようにしてください

(venv01) [root@test01 ~]# pip3 install django

インストールされているdjangoのバージョンを確認すると、3.2.4 であることがわかります 。

(venv01) [root@test01 ~]# python -m django –version
3.2.4

deactivate コマンドで 仮想環境をディアクティベートしてからバージョン確認コマンドを実行すると、No module named django と表示されます。django が Pythonの仮想環境 venv01 にインストールされ、Linux本体にはインストールされていないことがわかります。

(venv01) [root@test01 ~]# deactivate
[root@test01 ~]#
[root@test01 ~]# python -m django –version
/bin/python: No module named django

5. 2つめの仮想環境を作成する

先程は /var/lib 配下に venv01 という名前で仮想環境を作成しましたが、今度は venv02 という名前で仮想環境を作成してみます。

[centos@test01 ~]$ sudo python3 -m venv /var/lib/venv02

これで2つ目の仮想環境ができました。

6. 仮想環境を初期化する

コマンド

python3 -m venv –clear [パス]

実行例

(venv01) [root@test01 ~]# deactivate ◀ 仮想環境から抜けます
[centos@test01 ~]$ python3 -m venv –clear venv /var/lib/venv01
[centos@test01 ~]$

これで venv01 が初期化されました。venv01 をアクティベートして、先程インストールしたdjangoのバージョンを確認すると、djangoが消えていることがわかります。

[root@test01 ~]# source /var/lib/venv01/bin/activate ◀アクティベート
(venv01) [root@test01 ~]#
(venv01) [root@test01 ~]# python -m django –version ◀djangoのバージョン確認
/var/lib/venv01/bin/python: No module named django

7. 仮想環境を削除する

コマンド

rm -rf [パス]

ディレクトリを削除することで仮想環境を削除できます。

実行例

(venv01) [root@test01 ~]# deactivate ◀ 仮想環境から抜けます
[root@test01 ~]$
[root@test01 ~]$ rm -rf venv /var/lib/venv01
[root@test01 ~]$

これで venv01 が削除されました。

このように仮想環境 (venv) を使うことで、OS本体の Pythonのデフォルトバージョンは2系のままで、Python仮想環境ではPython 3系をデフォルトとして利用することが可能になります。

コメント

タイトルとURLをコピーしました