virtualenv, virtualenv-wrapper の使用法(Ubuntu 上)

金子邦彦研究室: データベース、人工知能(AI)、データサイエンスの融合により不可能を可能にする

目次

  1. 前準備
  2. Python を使ってみる
  3. virtualenv, virtualenv-wrapper のインストールと設定
  4. virtualenv を用いて Python バージョン3 環境の新規作成
  5. virtualenv を用いて Python バージョン2 環境の新規作成
  6. virtualenv, virtualenv-wrapper の確認
  7. spyder 開発版 のインストール
  8. virtualenv の Python バージョン 3 環境でSWIG を使ってみる

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.

Ubuntu のインストールは別ページ »で説明

sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

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

Python のインストールは行わない(Ubuntu のシステム Python を用いる.)

Python, pip のコマンドでの起動のまとめ.

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

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

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

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

sudo apt -y update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

Python を使ってみる

行列の積, 主成分分析, SVD, k-Means クラスタリングを実行し,性能を確認する.

次の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, random_state=10).fit(X)
labels = kmeans_model.labels_
print(time.time() - a)

実行結果の例

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

  1. 端末を開く
  2. virtualenv, virtualenv-wrapper のインストール
    sudo pip install -U virtualenv virtualenv-wrapper
    sudo pip3 install -U virtualenv virtualenv-wrapper
    echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.profile
    echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
    echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.profile
    source ~/.profile
    
  3. virtualenv, virtualenv-wrapper の設定

    エラーメッセージが出ていないことを確認

    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source /usr/local/bin/virtualenv-wrapper.sh
    touch ~/.profile
    echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.profile
    echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
    echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.profile
    source ~/.profile
    

    virtualenv-wrapper の使い方

    • mkvirtualenv <Python仮想環境名>: Python仮想環境の新規作成
    • workon: Python仮想環境の一覧表示
    • workon <Python仮想環境名>: Python仮想環境の有効化
    • deactivate: いま有効化されているPython仮想環境の無効化

virtualenv を用いて Python バージョン3 環境の新規作成

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

    Ubuntu 18.04 での実行結果の例

  3. Python バージョン3 環境の新規作成

    名前: py36

    使用する Python: python3

    source /usr/local/bin/virtualenv-wrapper.sh
    mkvirtualenv --python=/usr/bin/python3 py36
    
  4. 確認
    lsvirtualenv 
    

    py36」という新しい Python 環境が作成されたことが分かる

  5. 確認 の続き

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

    「workon py36」は、py36 の Python 環境の使用を開始するためのコマンド. エラーメッセージが出なければ OK.

    source /usr/local/bin/virtualenv-wrapper.sh
    workon py36
    which python
    which pip
    
  6. 試しに、py36 の Python 環境の Python を使ってみる
    source /usr/local/bin/virtualenv-wrapper.sh
    workon py36
    python 
    print(1 + 2)
    exit()
    

virtualenv を用いて Python バージョン 2 環境の新規作成

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

    Ubuntu 18.04 での実行結果の例

  3. Python 環境の新規作成
    • 名前: py27
    • 使用する Python: /usr/bin/python
    source /usr/local/bin/virtualenv-wrapper.sh
    mkvirtualenv --python=/usr/bin/python py27
    
  4. 確認
    lsvirtualenv 
    

    py27」という新しい Python 環境が作成されたことが分かる

  5. 確認 の続き

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

    「workon py27」は、py27 の Python 環境の使用を開始するためのコマンド. エラーメッセージが出なければ OK.

    source /usr/local/bin/virtualenv-wrapper.sh
    workon py27
    which python
    which pip
    
  6. 試しに、py27 の Python 環境の Python を使ってみる
    source /usr/local/bin/virtualenv-wrapper.sh
    workon py27
    python 
    print(1 + 2)
    exit()
    

virtualenv, virtualenv-wrapper の確認

spyder 開発版 のインストール

spyder 開発版のインストールを行う.

https://github.com/spyder-ide/spyder に記載の手順に従う

  • (オプション)もし、Python の仮想環境にインストールしていて、そこにインストールしたいとき、それを有効化する

    * Python の仮想環境を有効化したいときに限る

    source /usr/local/bin/virtualenv-wrapper.sh
    workon ai
    
  • インストール操作
    sudo pip3 install -U PyQT5
    sudo pip3 install -U git+https://github.com/spyder-ide/spyder-kernels
    sudo pip3 install -U git+https://github.com/spyder-ide/qtpy
    cd /tmp
    sudo git clone https://github.com/spyder-ide/spyder.git
    cd spyder 
    git pull 
    python bootstrap.py
    sudo python3 setup.py install 
    

    「spyder3」で、試しに起動してみる.

    virtualenv の Python バージョン 3 環境で SWIG を使ってみる

    1. SWIG のインストール (Install swig)
      sudo apt -y update
      sudo apt -y install swig
      
    2. プログラムファイルの作成

      http://www.swig.org/Doc1.3/Python.html#Python_nn6 に記載のサンプルプログラム

      • example.i
        %module example
        
        %{
        #define SWIG_FILE_WITH_INIT
        #include "example.h"
        %}
        
        int fact(int n);
        
      • example.c
        #include "example.h"
        
        int fact(int n) {
            if (n < 0){ /* This should probably return an error, but this is simpler */
                return 0;
            }
            if (n == 0) {
                return 1;
            }
            else {
                /* testing for overflow would be a good idea here */
                return n * fact(n-1);
            }
        }
        
      • example.h
        int fact(int n);
        
      • setup.py
        #!/usr/bin/env python
        
        """
        setup.py file for SWIG example
        """
        
        from distutils.core 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 で実行可能にするためのファイルを作る

      端末で次のように操作

      source /usr/local/bin/virtualenv-wrapper.sh
      workon py36
      swig -python example.i
      sudo python3 setup.py build_ext --inplace
      ls -la example.* build 
      
    5. python 処理系を起動し、次のプログラムを試してみる
      import example
      example.fact(4)
      exit()