Python環境構築ガイドUbuntu環境のPython 仮想環境

Ubuntu環境のPythonpip仮想環境

Python を使って開発や実験を行うときは、用途に応じて専用の実行環境を作成し、切り替えて使用するのが一般的です。こういった、一時的に作成する実行環境を、「仮想環境」 と言います。

仮想環境は、次のような目的で使われます。

  • システム全体で使うPython環境に影響を与えずにモジュールの追加・入れ替えをしたい。

  • 異なるバージョンの Python を使いわけたり、同じモジュールの、複数のバージョンを使い分けたい。

    例えば、開発中のWebアプリケーション開発では、Python 3.7 で Webアプリケーションフレームワークとして Django の 1.10 を使い、新しいプロジェクトでは Python 3.8 とDjango バージョン 1.11 を使用したい場合など、簡単に切り替えられるようにしたい。

ここでは、ここでは、Python3 の標準ライブラリである venv で仮想環境を作成する方法を紹介します。

プロジェクトディレクトリの作成

まず、開発対象のプロジェクトを格納するディレクトリを作成します。

コマンドプロンプトを開き、次のコマンドでディレクトリ sample1 を作成します。

$ mkdir sample1

次に、プロジェクトディレクトリに sample.py という名前のソースファイルを作成しましょう。

sample.py
import requests
print(requests.get("https://www.python.jp").text)

sample.py で使っている requestsモジュール は、Python標準のモジュールではなく、別途インストールしないと使えません。実行するとつぎのようにエラーになります。

$ cd sample1
$ python3 sample.py
Traceback (most recent call last):
  File "sample.py", line 1, in <module>
    import requests
ImportError: No module named requests

仮想環境の作成

では、最初の仮想環境を作成しましょう。sample1 ディレクトリで、次のコマンドを実行します。

$ python3 -m venv .venv

このコマンドは、指定したディレクトリ ~/sample1/.venv に仮想環境を作成します。仮想環境のディレクトリ名は、 .venv 以外でも、好きな名前をつけても大丈夫です。

仮想環境への切り替え

作成した仮想環境 .venv ディレクトリにある bin/activate を、. または source コマンドで実行します

$ . .venv/bin/activate
(.venv) $

コマンド プロンプトの先頭に (.venv) と表示され、仮想環境で実行中であることを示します。

パッケージのインストール

仮想環境を使用中に pip モジュールでPyPIからパッケージをインストールすると、仮想環境にインストールされます。sample.py で使っている、requests モジュールをインストールしましょう。

(.venv) $ python3 -m pip install requests

ここで、さきほど作成した sample.py を実行してみましょう。

(.venv) $ python3 sample.py

こんどは、エラー無しで実行できるはずです。

インストールしたモジュールは、仮想環境内にのみ書き込まれ、元の Pythonや、他の仮想環境からは利用できません。

仮想環境のコピー

違うPCでも開発したり、複数人のチームで開発したりする時は、どこでも同じ仮想環境を使うようにする必要があります。

この場合、仮想環境(.venv ディレクトリ) をコピーして共有するのではなく、仮想環境にインストールされているパッケージの一覧を作成して、みんなで共有するようにします。

パッケージの一覧は、つぎのコマンドで作成できます。ここでは、requirements.txt というファイルに一覧を作成しています。

(.venv) $ python3 -m pip freeze > requirements.txt

作成した requirements.txt ファイルは、ソースコードと一緒にgitなどに登録して一元管理しましょう。

新しく仮想環境を作成したり、requirements.txt に新しいパッケージを追加したときには、次のコマンドで一括して仮想環境にパッケージをインストールします。

(.venv) $ python3 -m pip install -r requirements.txt

仮想環境の終了

仮想環境の使用を終え、通常の状態に復帰するときは、deactivate コマンドを実行します。

(.venv) $ deactivate
$

仮想環境を終了すると、もう requests モジュールは使えなくなってしまいます。

$ python sample.py
Traceback (most recent call last):
  File "sample.py", line 1, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

Pythonを指定した仮想環境

複数のバージョンの Python をインストールしている環境では、使用する Python を指定して仮想環境を作成できます。

Python 3.7とPython 3.8がインストールされた環境で、Python 3.7の仮想環境を作成する場合は、python3.7 を使って次のように指定します。ここでは、仮想環境をディレクトリ py37env に作成します。

$ python3.7 -m venv py37env

ここで作成した py37env を使用すると、python 3.7の仮想環境に切り替わります。

$ . py37env/bin/activate
$ python3
Python 3.7.8 (default, Jul  8 2020, 14:18:28)
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

同様に、Python 3.8の仮想環境は、つぎのコマンドで作成できます。

$ python3.8 -m venv py38env

py38env を使用すると、python 3.8の仮想環境に切り替わります。

$ . py38env/bin/activate
$ python3
Python 3.8.3 (default, Jul  8 2020, 14:27:55)
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

この2つの仮想環境を用意しておけば、簡単にPython3.7と3.8を切り替えて使えます。

Copyright © 2001-2021 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索