Anaconda 3 で各種パッケージのインストール,SWIG の利用,Python 2.7 仮想環境の作成(Ubuntu 上)

目次

先人に感謝

前準備

  1. 前準備として Anaconda がインストール済みであること
  2. Anaconda3 の conda パッケージの更新、古い conda パッケージファイルの削除

    「conda config --remove channels conda-forge」は,conda のチャンネルに「conda-forge」が入っていたら削除する操作.「CondaKeyError: 'channels' 'conda-forge' ...」というエラーメッセージは無視してよい.

    conda config --remove channels conda-forge
    conda upgrade -y --all
    conda clean -y --packages
    

    (途中省略)

    (途中省略)

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

Anaconda では,「conda」という形式の Python のパッケージも、簡単に扱うことができる. Python のパッケージを追加することで,Python にいろいろな機能を追加することができる.conda を用いてPythonパッケージ以外のソフトウェアをインストールすることもできる

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

CONDAPKGS="tensorflow-gpu tensorflow-datasets matplotlib numpy scipy h5py scikit-learn scikit-image seaborn pandas pandasql pillow pytest pyyaml cython bokeh keras statsmodels plotly sympy csvkit docopt pyproj flake8 protobuf pymc3 bs4 html5lib rope wrapt mkl mkl-include cffi wheel six holoviews jupyterlab jupyter spyder sphinx bottleneck pygments numexpr xlrd xlsxwriter lxml graphviz pydot flask django redis pylint bz2file PyOpenGL"
for i in $CONDAPKGS; do
    echo $i
    conda install -y $i > /dev/null
done

conda install -c conda-forge -y opencv
conda config --remove channels conda-forge

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. プログラムファイルから、Python で実行可能にするためのファイルを作る
    swig -python example.i
    python setup.py build_ext --inplace
    ls -la example.* build 
    
  4. python 処理系を起動し、次のプログラムを試してみる
    import example
    example.fact(4)
    exit()
    

隔離された Python 2.7 環境の作成 (condaを使用)

  1. 今から作成するPython の仮想環境の名前と、Pythonのバージョンを決めておく
  2. 端末を開く
  3. Python の仮想環境を作成する

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

    「Proceed ([y]/n) ?」 に対しては Enterキー

    conda create -n py27 python=2.7
    

    (以下省略)
  4. Python 環境が作成できたことを確認
    conda info -e
    

これで、もとからの Python 環境と, 新規作成されたPython 環境(Python のバージョン 2.7名前は py27)の共存できた。

隔離された Python 2.7 環境で各種パッケージのインストール

Anaconda 既定のときと比べると、最初に「source activate py27」を実行するだけの違い

conda-build パッケージのインストール

conda-buildパッケージは,condaパッケージを自前で作成するなどが簡単にできるためのツール.

  1. まずは,最新の conda-build パッケージが欲しい.

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

    activate py27
    conda install -y conda-build
    

    * 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.

  2. setuptools, conda, conda-build の更新
    conda update -y setuptools
    conda update -y conda
    conda update -y conda-build
    

    * 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enterキーを押してみる.

  3. gcc_linux, gxx_linux のインストール・インストール済みパッケージの更新
    conda install -y gcc_linux-64
    conda install -y gxx_linux-64
    conda update -y --all