環境構築ガイドWindows 環境のPython

仮想環境

Windows 環境のPythonダウンロードとインストールPythonの実行方法pip ¦ 仮想環境 ¦ Cコンパイラのインストール

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

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

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

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

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

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

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

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

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

C:\Users\user1>mkdir sample1

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

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

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

C:\Users\user1>cd sample1
C:\Users\user1\sample1>python sample.py
Traceback (most recent call last):
  File "sample.py", line 1, in <module>
    import requests
ImportError: No module named requests

仮想環境の作成

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

C:\Users\user1\sample1>python -m venv .venv

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

仮想環境の切り替え

Windowsでは、Python を コマンド プロンプトで実行する場合と、PowerShell で実行する場合で、仮想環境の使い方が違います。

Caution!

PowerShellを利用する場合は、最初に下記の設定が必要ですので注意してください。

コマンド プロンプトでの切り替え

作成した仮想環境 .venv ディレクトリにある Scripts\activate.bat を実行します

C:\Users\user1\sapmle1>.venv\Scripts\activate.bat
(.venv) C:\Users\user1\sample1>

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

PowerShellでの切り替え

仮想環境を利用する前に、PowerShellでスクリプトの実行を許可しておきます。PowerShellを起動し、次のコマンドを実行します。

PS C:\> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

このコマンドは、一番最初に一回だけ実行してください。2回目以降は不要です。

この設定がない場合、つぎのようなエラーが発生する場合があります。

.\venv\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、
ファイル C:\Users\user1\venv\Scripts\Activate.ps1 を読み込むことができません。
詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170)
を参照してください。
発生場所 行:1 文字:1
+ .\venv\Scripts\Activate.ps1
+ ~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

次に、作成した仮想環境 .venv ディレクトリにある Scripts\activate.ps1 を実行します

PS C:\Users\user1\sapmle1> .venv\Scripts\activate.ps1

(.venv) C:\Users\user1\sample1>

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

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

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

(.venv) C:\Users\user1\sample1>python -m pip install requests

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

(.venv) C:\Users\user1\sample1>python sample.py

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

仮想環境のコピー

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

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

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

(.venv) C:\Users\user1\sample1>python -m pip freeze > requirements.txt

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

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

(.venv) C:\Users\user1\sample1>python -m pip install -r requirements.txt

仮想環境の終了

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

(.venv) C:\Users\user1\sample1> deactivate
C:\Users\user1\sample1>

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

C:\Users\testuser1>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 を指定して仮想環境を作成できます。

Windows環境では、Pythonランチャー py.exe がインストールされます。MacOS や Linux などの Unix系OSでは、python コマンドや python3 コマンドで Python を実行しますが、Windowsではこの py.exe が便利です。

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

C:\Users\user1>py -3.7 -m venv py37env

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

C:\Users\user1>py37env\Scripts\activate.bat
(py37env) C:\Users\user1>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

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

C:\Users\user1>py -3.8 -m venv py38env

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



【Copyright © 2001-2020 python.jp】 【Privacy Policy】 python_japan