仮想環境

投稿者: | 2022-03-19

目次

前提

  • 仮想環境を作成するソフトはいくつかある(参考URL
    • conda(Anaconda)
    • virtualenv(サードパーティ製)
    • venv(python純正)
    • pipenv?
  • 以下は、Pythonに標準搭載された仮想環境の純正プログラム venv の説明

参考URL

仮想環境の作成

注意点:作成された仮想環境のディレクトリは隠しファイル(.ディレクトリ名)になっている

  • 表示させるには、mac:cmd+shift+「 . 」
  • ls だけでは表示されないため、オプション -a をつける
  • 隠しファイルの中に入ってしまえば見える

手順概要

  • まず仮想環境用のディレクトリを作成しておく(sample1) 
    • 別に不要?いやWinだと乱雑になるので仮想環境の上に作業用ディレクトリは必要
  • Mac,Winのシェルでそのディレクトリに移動してから以下操作を行う
  • 例)sample1の配下に、仮想環境のディレクトリ「.myvenv」を作成する
  • 仮想環境を提供する機能「venv(ブイエンブ)」
  • 仮想環境内でインストールしたライブラリは、仮想環境でのみ有効
  • 仮想環境が不要になれば、フォルダごと削除すればよい
  • そうすればグローバルインストールによって環境を汚すこともない
  • たぶん、どんな仮想環境をつくったか、仮想環境名を一覧表示する機能はないはず

macOS

$ python3 -m venv .myvenv

# sample1上ではなく、そのままシェル上から叩くと
Macの場合ホームフォルダに「myenv」フォルダ作成される

中身は共通(以下)
$ ls myenv
bin   include   lib   pyvenv.cfg
  • binフォルダの中身(Macの場合)

Windows

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

仮想環境の切り替え

mac

  • 作成した仮想環境にできた「.venv」ディレクトリにあるbin/activate
  • .」または「source」コマンドで実行する
  • source ./venv/bin/active 先頭のドットをわすれない
  • 実行すると先頭に(.venv)と表示され、仮想環境に切り替わる
  • 以下は仮想環境フォルダをvenvとしている

Windows

  • 切り替え方法は2つある
    • コマンドプロンプト
    • PowerShell

コマンドプロンプト

  • 作成した仮想環境にある.venvディレクトリにあるScripts/activate.batを実行する
C:\Users\user1\sapmle1>.venv\Scripts\activate.bat
(.venv) C:\Users\user1\sample1>

PowerShell

  • 作成した仮想環境にある.venvディレクトリにあるScripts\activatge.ps1を実行する
  • 事前に実行許可の設定が必要
PS C:\Users\user1\sapmle1> .venv\Scripts\activate.ps1

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

Linux

  • Macと同じ

仮想環境の終了

deactivate

# macOS
(.venv) $ deactivate
$
# Windows
(.venv) C:\Users\user1\sample1> deactivate
C:\Users\user1\sample1>

仮想環境のpythonパッケージを確認する

  • 仮想環境内で python3 -m pip freeze
  • ここで表示されるのは仮想環境内のパッケージであり、オリジナルの環境のパッケージとは別物

仮想環境のコピー

  • 仮想環境Aをコピーしたい場合、そのフォルダをコピーして利用してもよいらしいが、サイズが大きくなりやすいため、次のやり方で行うのが一般的

requirements.txt

  • 仮想環境にインストールしたライブラリは、ファイル「requrirements.txt」に記載することで管理できる

requirements.txtの作成方法

  • 今の仮想環境で使っているライブラリを書き出す
pip freeze > requirements.txt
サンプルのため、パッケージは少ないがこんなイメージ
  • 作成したrequirements.txtを別のフォルダ(今回のフォルダ名:TEST)に貼り付け、作業ディレクトリを移動
  • 続いて以下のように「仮想環境作成」「仮想環境起動」「ライブラリのインストール」を実行する
  • するとコピー元と同じライブラリ群がインストールされる
  • つまり、仮想環境のコピー = 同じライブラリ(同バージョン)が使える、を意味する
  • pip の使い方は、「pip(改)」を参照
# 1. 仮想環境作成
python3 -m venv env

# 2. 仮想環境起動
source env/bin/activate # Macの場合
env/Scripts/Activate.ps1 # Winの場合

# 3. ライブラリのインストール
pip install -r requirements.txt