Anaconda 3 で各種パッケージのインストール,SWIG の利用,Python 仮想環境の作成(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 matplotlib numpy scipy h5py scikit-learn scikit-image seaborn pandas pandasql pillow pytest pyyaml cython bokeh statsmodels plotly sympy docopt pyproj flake8 protobuf 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 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 update
    sudo apt -y install swig
    
  2. プログラムファイルの作成

    https://www.swig.org/Doc4.0/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

      distutils は Python 3.12 で削除されたため,setuptools を使用する.

      #!/usr/bin/env python
      
      """
      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. プログラムファイルから、Python で実行可能にするためのファイルを作る

    --inplace は,生成されたモジュールをカレントディレクトリに置くオプションである.

    swig -python example.i
    python setup.py build_ext --inplace
    ls -la example.* build
    
  4. python 処理系を起動し、次のプログラムを試してみる
    import example
    example.fact(4)
    exit()
    

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

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

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

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

    conda create -n py311 python=3.11
    

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

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

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

Anaconda 既定のときとの違いは、最初に「conda activate py311」を実行することである.

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

conda-buildパッケージは,condaパッケージを自前で作成するためのツールである.

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

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

    conda activate py311
    conda install -y conda-build
    

    * 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.

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

    * 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.

  3. gcc_linux, gxx_linux のインストール・インストール済みパッケージの更新

    gcc_linux-64, gxx_linux-64 は,conda 環境内で C, C++ のコンパイルを行うためのコンパイラである.

    conda install -y gcc_linux-64
    conda install -y gxx_linux-64
    conda update -y --all