virtualenv, virtualenvwrapper の使用法(Ubuntu 上)

金子邦彦研究室: データベース、人工知能(AI)、データサイエンスの融合により不可能を可能にする
目次
  1. 前準備
  2. Python を使ってみる
  3. virtualenv, virtualenvwrapper のインストールと設定
  4. Python 仮想環境の新規作成
  5. 2つ目の Python 仮想環境の新規作成と切り替え
  6. virtualenv, virtualenvwrapper の確認
  7. Spyder のインストール(Python 仮想環境内)
  8. Python 仮想環境で SWIG を使ってみる

このページは Ubuntu 24.04 LTS(システム Python は Python 3.12)および Ubuntu 26.04 LTS(システム Python は Python 3.14)を対象とする。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティ更新やバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行
# sudo shutdown -r now

Python3 開発用ファイル,pip, venv のインストール(Ubuntu 上)

Python 本体のインストールは行わない(Ubuntu のシステム Python を用いる。Ubuntu 24.04 では Python 3.12、Ubuntu 26.04 では Python 3.14 である)。

Ubuntu のシステム Python を用いるとき,Python と pip は次のコマンドで起動する。

Ubuntu 24.04 以降のシステム Python は PEP 668 により外部管理環境(externally-managed-environment)として保護されており,sudo pip3 install によるシステム全体へのインストールはエラーとなる。Python パッケージのインストールは,このページで説明するPython 仮想環境の中で行う。

Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明

Python3 開発用ファイル,pip, venv のインストール

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python3-pip python3-setuptools python3-venv build-essential

Python を使ってみる

行列の積, 主成分分析, SVD, k-Means クラスタリングを実行し,動作と所要時間を確認する.

まず,必要なパッケージ(NumPy, scikit-learn)をシステムのパッケージからインストールする。 端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python3-numpy python3-sklearn

次のPython プログラムの実行

* Python プログラムを動かすために, Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも使用できる.

import time
import numpy
import numpy.linalg
import sklearn.decomposition
import sklearn.cluster
X = numpy.random.rand(2000, 2000)
Y = numpy.random.rand(2000, 2000)
# 行列の積
a = time.time(); Z = numpy.dot(X, Y); print(time.time() - a)
# 主成分分析
pca = sklearn.decomposition.PCA(n_components = 2)
a = time.time(); pca.fit(X); X_pca = pca.transform(X); print(time.time() - a)
# SVD
a = time.time(); U, S, V = numpy.linalg.svd(X); print(time.time() - a)
# k-means
a = time.time()
kmeans_model = sklearn.cluster.KMeans(n_clusters=10, n_init=10, random_state=10).fit(X)
labels = kmeans_model.labels_
print(time.time() - a)

実行結果の例(所要時間は CPU や BLAS の実装により異なる)

virtualenv, virtualenvwrapper のインストールと設定

virtualenv は Python 仮想環境を作成するツール,virtualenvwrapper は仮想環境の作成・切り替え・削除を簡単なコマンドで行えるようにする拡張である。Ubuntu 24.04, Ubuntu 26.04 では,どちらも apt パッケージとして提供されている。

  1. 端末を開く
  2. virtualenv, virtualenvwrapper のインストール
    # パッケージリストの情報を更新
    sudo apt update
    sudo apt -y install virtualenv virtualenvwrapper
    
  3. virtualenv, virtualenvwrapper の設定

    apt でインストールした場合,virtualenvwrapper の起動スクリプトは /usr/share/virtualenvwrapper/virtualenvwrapper.sh に置かれる。 次のコマンドで,現在の端末での設定と,~/.profile への設定の追加を行う。 エラーメッセージが出ていないことを確認する。

    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    touch ~/.profile
    echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
    echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
    echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.profile
    source ~/.profile
    
    virtualenvwrapper の主なコマンド
    • mkvirtualenv <Python仮想環境名>: Python仮想環境の新規作成
    • lsvirtualenv: Python仮想環境の一覧表示
    • workon <Python仮想環境名>: Python仮想環境の有効化
    • deactivate: いま有効化されているPython仮想環境の無効化
    • rmvirtualenv <Python仮想環境名>: Python仮想環境の削除

Python 仮想環境の新規作成

  1. 新しく端末を開く
  2. システムの python3 のバージョンの確認
    which python3
    python3 --version
    

    Ubuntu 24.04 では Python 3.12、Ubuntu 26.04 では Python 3.14 と表示される。

  3. Python 仮想環境の新規作成

    名前: myenv

    使用する Python: /usr/bin/python3(システム Python)

    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    mkvirtualenv --python=/usr/bin/python3 myenv
    
  4. 確認
    lsvirtualenv
    

    myenv」という新しい Python 仮想環境が作成されたことを確認する

  5. 確認 の続き

    新しく端末を開き,次のコマンドを実行する.

    「workon myenv」は、myenv の Python 仮想環境の使用を開始するためのコマンドである。 which python,which pip の結果が ~/.virtualenvs/myenv/bin の下を指していれば,仮想環境が有効になっている。

    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    workon myenv
    which python
    which pip
    python --version
    
  6. myenv の Python 仮想環境の Python を使ってみる
    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    workon myenv
    python
    print(1 + 2)
    exit()
    
  7. Python 仮想環境の無効化
    deactivate
    

2つ目の Python 仮想環境の新規作成と切り替え

Python 仮想環境は複数作成でき,仮想環境ごとに異なるパッケージ構成を持たせることができる。ここでは 2 つ目の仮想環境を作成し,切り替えを確認する。

  1. 新しく端末を開く
  2. システムの python3 のバージョンの確認
    which python3
    python3 --version
    
  3. Python 仮想環境の新規作成
    • 名前: ai
    • 使用する Python: /usr/bin/python3
    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    mkvirtualenv --python=/usr/bin/python3 ai
    
  4. 確認
    lsvirtualenv
    

    myenv」と「ai」の 2 つの Python 仮想環境があることを確認する

  5. 確認 の続き

    新しく端末を開き,次のコマンドを実行する.

    「workon ai」は、ai の Python 仮想環境の使用を開始するためのコマンドである。 which python,which pip の結果が ~/.virtualenvs/ai/bin の下を指していれば,仮想環境が有効になっている。

    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    workon ai
    which python
    which pip
    
  6. 仮想環境の切り替えを確認する

    workon コマンドを続けて実行すると,有効化されている仮想環境が切り替わる。

    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    workon myenv
    which python
    workon ai
    which python
    deactivate
    
  7. 不要になった仮想環境の削除(実行は任意)
    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    rmvirtualenv ai
    lsvirtualenv
    

virtualenv, virtualenvwrapper の確認

Spyder のインストール(Python 仮想環境内)

Spyder を Python 仮想環境にインストールする。手順は公式の案内 https://docs.spyder-ide.org/current/installation.html に従う。

  1. インストール先のPython の仮想環境を有効化する
    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    workon myenv
    
  2. インストール操作

    仮想環境の中の pip を使うため,sudo は付けない。

    pip install -U pip setuptools wheel
    pip install -U spyder
    
  3. 起動の確認
    spyder
    

Python 仮想環境で SWIG を使ってみる

SWIG は,C/C++ で書いた関数を Python から呼び出せるようにするためのラッパー生成ツールである。

  1. SWIG のインストール
    # パッケージリストの情報を更新
    sudo apt update
    sudo apt -y install swig build-essential python3-dev
    
  2. プログラムファイルの作成

    SWIG のドキュメント https://www.swig.org/Doc4.0/Python.html に記載のサンプルプログラムを用いる。

    • example.i
      %module example
      
      %{
      #include "example.h"
      %}
      
      int fact(int n);
      
    • example.c
      #include "example.h"
      
      int fact(int n) {
          if (n < 0){ /* エラーを返すべきだが、ここでは簡単のため 0 を返す */
              return 0;
          }
          if (n == 0) {
              return 1;
          }
          else {
              return n * fact(n-1);
          }
      }
      
    • example.h
      int fact(int n);
      
    • setup.py

      distutils は Python 3.12 で標準ライブラリから削除されたため,setuptools を用いる。

      #!/usr/bin/env python3
      
      """
      setup.py file for SWIG example
      """
      
      from setuptools import setup, Extension
      
      
      example_module = Extension('_example',
                                 sources=['example_wrap.c', 'example.c'],
                                 )
      
      setup (name = 'example',
             version = '0.1',
             author      = "SWIG Docs",
             description = """Simple swig example from docs""",
             ext_modules = [example_module],
             py_modules = ["example"],
             )
      
  3. 新しく端末を開く
  4. プログラムファイルから、Python で実行可能にするためのファイルを作る

    4 つのファイルを置いたディレクトリで,次のように操作する。仮想環境の中でビルドするため,sudo は付けない。

    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    workon myenv
    pip install -U setuptools
    swig -python example.i
    python3 setup.py build_ext --inplace
    ls -la example.* build
    
  5. python 処理系を起動し、次のプログラムを実行して動作を確認する
    import example
    example.fact(4)
    exit()