6.1 Condaコマンド

このトピックでは、Autonomous Databaseで、conda環境の作成およびテスト中にADMINが使用する一般的なコマンドについて説明します。Condaは、サード・パーティPythonライブラリが含まれる環境の使用を可能にするオープンソースのパッケージおよび環境管理システムです。

サポートされているcondaコマンドの表は、Condaインタプリタ・コマンドを参照してください。

Condaヘルプ

condaコマンドのヘルプを表示するには、コマンド名の後に--helpフラグを付けて実行します。

ノート:

%condaインタプリタによってcondaコンテキストが提供されるため、condaコマンドは明示的に実行されません。
  • すべてのcondaコマンドのヘルプを表示する

    %conda
    
    --help
    
  • 特定のcondaコマンドのヘルプを表示する。次のコマンドを実行して、installコマンドのヘルプを表示します。

    %conda
    
    install --help

Conda情報

infoコマンドは、condaバージョンや使用可能なチャネルなど、condaインストールに関する情報を表示します。

%conda

info

Conda検索

searchコマンドを使用すると、パッケージを検索したり、関連する情報(パッケージのバージョンやパッケージが存在するチャネルなど)を表示できます。

  • 特定のパッケージを検索する。次のコマンドを実行して、パッケージscikit-learnを検索します。

    %conda
    
    search scikit-learn
  • パッケージ名に'scikit'が含まれるパッケージを検索する。

    %conda
    
    search '*scikit*'
  • 特定のバージョンのパッケージを検索する。

    %conda
    
    search 'numpy==1.12'
    %conda
    
    search 'numpy>=1.12'
  • 特定のチャネルで特定のバージョンを検索する。

    %conda
    
    search conda-forge::numpy

拡張Condaコマンド

conda環境のライフサイクル管理パッケージenv-lcmに含まれる一連の拡張condaコマンドにより、使用可能な環境のアップロード、ダウンロード、リスト、削除など、オブジェクト・ストレージに保存された環境の管理がサポートされます。

condaライフサイクル環境コマンドのヘルプ。

%conda

env-lcm --help
Usage: conda-env-lcm [OPTIONS] COMMAND [ARGS]...

  ADB-S Command Line Interface (CLI) to manage persistence of conda
  environments

Options:
  -v, --version  Show the version and exit.
  --help         Show this message and exit.

Commands:
  delete           Delete a saved conda environment
  download         Download a saved conda environment
  import           Create or update a conda environment from saved metadata
  list-local-envs  List locally available environments for use
  list-saved-envs  List saved conda environments
  upload           Save conda environment for later use

Conda環境の作成

この項では、パッケージの作成とconda環境へのインストール、さらに環境の削除について説明します。ここでは、環境の作成およびテストに使用できる一般的に使用されるオプションを示します。環境はノートブック・セッションの間存在し、オブジェクト・ストレージに保存しないかぎりセッション間で保持されません。OMLユーザーの環境の作成と永続化の両方を含む手順は、「Conda環境を作成および保存するための管理タスク」を参照してください。ADMINユーザーとして、次のようにします。
  1. createコマンドを使用して環境myenvを作成し、Python kerasパッケージをインストールします。
  2. 新しい環境が作成されていることを確認し、環境をアクティブ化します。
  3. 環境内の追加のPythonパッケージpytorchをインストールしてからアンインストールします。
  4. 環境を非アクティブ化して削除します。

ノート:

ADMINユーザーはPythonおよびRからconda環境にアクセスできますが、埋込みのPythonおよびR実行コマンドは実行できません。
conda createコマンドのヘルプを表示するには、%conda段落にcreate --helpと入力します。

環境のリスト

デフォルトで使用可能な環境をリストするところから始めます。Condaには、いくつかのコア・システム・ライブラリおよびconda依存関係が含まれるデフォルト環境があります。アクティブな環境にはアスタリスク(*)が付いています。

%conda

env list
# conda environments:
#
base                   * /usr
conda-pack-env           /usr/envs/conda-pack-env

Conda環境の作成

OML4Py互換性のため、Python 3.10でmyenvというconda環境を作成し、kerasパッケージをインストールします。

%conda 

create -n myenv python=3.10 keras

環境の作成の確認

myenv環境が環境のリストに含まれていることを確認します。アスタリスク(*)は、アクティブな環境を示します。新しい環境が作成されていますが、アクティブ化されません。

%conda

env list
# conda environments:
#
myenv                   /u01/.conda/envs/myenv
base                  * /usr
conda-pack-env          /usr/envs/conda-pack-env

環境のアクティブ化

myenv環境をアクティブ化し、環境をリストしてアクティブ化を確認します。環境名の横にあるアスタリスク(*)により、アクティブ化が確認されます。

%conda

activate myenv
Conda environment 'myenv' activated

デフォルトで使用可能な環境をリストします。


%conda

env list
# conda environments:
#
myenv                 * /u01/.conda/envs/myenv
base                    /usr
conda-pack-env          /usr/envs/conda-pack-env

ライブラリのインストールとアンインストール

ADMINユーザーは、installおよびuninstallコマンドを使用して、環境に対してライブラリをインストールおよびアンインストールできます。condaのinstallコマンドとuninstallコマンドのヘルプを表示するには、%conda段落にinstall --helpおよびuninstall --helpと入力します。

ノート:

condaによってパッケージが環境にインストールされると、必要な依存関係もインストールされます。ここに示すとおり、既存の環境にパッケージをインストールできます。ベスト・プラクティスとして、依存関係の競合を回避するために、特定の環境で必要なパッケージをすべて同時にインストールします。

追加パッケージのインストール

アクティブ化されたmyenv環境にpytorchパッケージをインストールします。

%conda

install pytorch

現在の環境内のパッケージのリスト

現在の環境にインストールされているパッケージをリストし、kerasおよびpytorchがインストールされていることを確認します。

%conda

list

出力は、次のようなものです。

# packages in environment at /u01/.conda/envs/myenv:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
blas                      1.0                         mkl  
.
.
.
fftw                      3.3.9                h27cfd23_1  
future                    0.18.2          py310h06a4308_1  
intel-openmp              2021.4.0          h06a4308_3561  
keras                     2.10.0          py310h06a4308_0  
keras-preprocessing       1.1.2              pyhd3eb1b0_0  
ld_impl_linux-64          2.38                 h1181459_1  
libffi                    3.3                  he6710b0_2  
libgcc-ng                 11.2.0               h1234567_1  
.
.
.
numpy-base                1.23.3          py310h8e6c178_1  
openssl                   1.1.1s               h7f8727e_0  
pip                       22.2.2          py310h06a4308_0  
pycparser                 2.21                     pypi_0    pypi
python                    3.10.6               haa1d7c7_1  
pytorch                   1.10.2          cpu_py310h6894f24_0  
readline                  8.2                  h5eee18b_0  
.
.
.
xz                        5.2.6                h5eee18b_0  
zlib                      1.2.13               h5eee18b_0  

前述の出力は切り取られているため、パッケージの完全なリストを示していません。

パッケージのアンインストール

uninstallコマンドを使用して、ライブラリを環境からアンインストールできます。現在の環境からpytorchパッケージをアンインストールしてみましょう。

%conda

uninstall pytorch

パッケージがアンインストールされたことの確認

現在の環境内のパッケージをリストし、pytorchパッケージがアンインストールされたことを確認します。

%conda

list

次に示す出力には、pytorchパッケージが含まれていません。

# packages in environment at /u01/.conda/envs/myenv:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
blas                      1.0                         mkl  
bzip2                     1.0.8                h7b6447c_0  
ca-certificates           2022.10.11           h06a4308_0  
certifi                   2022.9.24       py310h06a4308_0  
cffi                      1.15.1          py310h74dc2b5_0  
fftw                      3.3.9                h27cfd23_1  
future                    0.18.2          py310h06a4308_1  
intel-openmp              2021.4.0          h06a4308_3561  
keras                     2.10.0          py310h06a4308_0  
keras-preprocessing       1.1.2              pyhd3eb1b0_0  
ld_impl_linux-64          2.38                 h1181459_1  
libffi                    3.3                  he6710b0_2  
libgcc-ng                 11.2.0               h1234567_1  
libgfortran-ng            11.2.0               h00389a5_1  
libgfortran5              11.2.0               h1234567_1  
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
libuuid                   1.0.3                h7f8727e_2  
mkl                       2021.4.0           h06a4308_640  
mkl-service               2.4.0           py310h7f8727e_0  
mkl_fft                   1.3.1           py310hd6ae3a3_0  
mkl_random                1.2.2           py310h00e6091_0  
ncurses                   6.3                  h5eee18b_3  
ninja                     1.10.2               h06a4308_5  
ninja-base                1.10.2               hd09550d_5  
numpy                     1.23.3          py310hd5efca6_1  
numpy-base                1.23.3          py310h8e6c178_1  
openssl                   1.1.1s               h7f8727e_0  
pip                       22.2.2          py310h06a4308_0  
pycparser                 2.21                     pypi_0    pypi
python                    3.10.6               haa1d7c7_1  
readline                  8.2                  h5eee18b_0  
scipy                     1.9.3           py310hd5efca6_0  
setuptools                65.5.0          py310h06a4308_0  
six                       1.16.0             pyhd3eb1b0_1  
sqlite                    3.39.3               h5082296_0  
tk                        8.6.12               h1ccaba5_0  
typing-extensions         4.3.0           py310h06a4308_0  
typing_extensions         4.3.0           py310h06a4308_0  
tzdata                    2022f                h04d1e81_0  
wheel                     0.37.1             pyhd3eb1b0_0  
xz                        5.2.6                h5eee18b_0  
zlib                      1.2.13               h5eee18b_0  

環境の削除

データベース内のOMLユーザーのオブジェクト・ストレージに環境をアップロードする予定がない場合は、ノートブック・セッションを終了するだけで範囲外になります。あるいは、env removeコマンドを使用して明示的に削除することもできます。myenv環境を削除し、削除されたことを確認します。ベスト・プラクティスは、削除する前に環境を非アクティブ化することです。env removeコマンドのヘルプを表示するには、%condaインタプリタにenv remove --helpと入力します。

  • 環境を非アクティブ化します。

    %conda
    
    deactivate
    Conda environment deactivated
  • 環境を削除します。

    %conda
    
    env remove -n myenv
    

    環境をリストして、環境が削除されているかどうかを確認します。

    env list
    # conda environments:
    #
    myrenv                   /u01/.conda/envs/myrenv
    base                  *  /usr
    conda-pack-env           /usr/envs/conda-pack-env

    環境/u01/.conda/envs/myenv内の全パッケージを削除します。

インストール対象のパッケージの指定

conda-forgeチャネルからのパッケージのインストール

Condaチャネルは、パッケージが格納される場所です。パッケージをホストおよび管理するための基盤として機能します。Condaパッケージは、リモート・チャネル(condaパッケージが格納されているディレクトリへのURL)からダウンロードします。condaコマンドよって一連のチャネルが検索されます。デフォルトでは、パッケージはデフォルトのチャネルから自動的にダウンロードおよび更新されます。conda-forgeチャネルは、誰でも無料で使用できます。自動的に検索されるリモート・チャネルを変更できます。これは、プライベートまたは内部チャネルを管理するために実行することがあります。次の例では、数千人の貢献者で構成されるコミュニティ・チャネルであるconda-forgeチャネルを使用しています。

  • 特定のバージョンのパッケージをインストールする。

    特定のバージョンのパッケージをインストールするには、<package_name>=<version>.を使用します。

  • conda-forgeを使用して環境を作成する。

    
    %conda
    
    create -n mychannelenv -c conda-forge python=3.10
    
    activate mychannelenv
  • チャネルを指定して、conda-forgeからパッケージをインストールする。

    %conda
    
    install scipy --channel conda-forge
  • 特定のバージョンのパッケージをインストールする。

    %conda
    
    install scipy=0.15.0