私的AI研究会 > CondaReview
開発環境のもとになる「Anaconda」の Windows/Linux 環境下での構築についてまとめる
Python によるソフトウェア開発では、これまでのPython利用者たちが作り上げた、膨大なソフトウェア資産とそれらを利用できる環境が2種類用意されている。
種 別 | Python | Anaconda |
パッケージインストール | pip | conda |
依存関係のチェック | なし | あり |
パッケージのダウンロード元 | PyPl | anacondaリポジトリ |
仮想環境 | venv | conda |
機 能 | コマンド | |
パケージ一覧表示 | 現在の仮想環境のパッケージ一覧表示 | conda list |
指定した仮想環境のパッケージ一覧表示 | conda list -n py38 | |
パッケージの検索 | 公式リポジトリ内のパッケージを検索 | conda search tensorflow |
チャネル内のパッケージを検索 | conda search -c conda-forge tensorflow | |
パッケージインストール | 公式リポジトリ内のパッケージをインストール | conda install tensorflow |
チャネル内のパッケージをインストール | conda install -c conda-forge tensorflow | |
バージョン指定してインストール | conda install tensorflow=1.15 | |
パッケージの更新 | パッケージを最新に | conda update tensorflow |
すべてのパッケージを最新に | conda update --all | |
パケージのアンインストール | conda uninstall tensorflow | |
パケージの削除 | conda remove tensorflow | |
仮想環境作成 | pythonバージョンを指定して作成 | conda create -n py38 python=3.8 |
仮想環境をコピーして作成 | conda create -n py38 --clone base | |
環境設定ファイル(.yaml)から環境を再構築 | conda create -n py38 --file package-list.txt | |
仮想環境の削除 | conda env remove -n py38 | |
仮想環境有効化 | conda activate py38 | |
仮想環境の終了 | conda deactivate | |
現在の環境を設定ファイル(.yaml)に出力 | conda list --export > package-list.txt | |
conda のアップデート | conda update -n base conda | |
condaのバージョンを表示 | conda -V | |
仮想環境の一覧表示 | conda info -e | |
conda 環境の表示 | conda info |
機 能 | コマンド |
インストール済みのパッケージの詳細確認 | pip show <パッケージ名> |
インストール済みパッケージ名とバージョン一覧 | pip list |
最新版になっていないもののみ表示 | pip list –outdate |
インストール済みパッケージ名とバージョン一覧(パッケージ管理除外) | pip freeze |
パッケージのインストール | pip install <パッケージ名> |
複数パッケージのインストール | pip install <パッケージ名> <パッケージ名> ... |
バージョンを指定してインストール (バージョンを省略するとインストール可能なバージョン表示) | pip install <パッケージ名>==<バージョン> |
GitHab からインストール | pip install git+<repository-url> |
パッケージのアップデート | pip install -U <パッケージ名> |
パッケージのアップデート | pip install –update <パッケージ名> |
インストール済みパッケージのアンインストール | pip uninstall <パッケージ名> |
複数インストール済みパッケージのアンインストール | pip uninstall <パッケージ名> <パッケージ名> ... |
最新ファイルをDL(インストールはしない) | pip download <パッケージ名> |
pipのバージョンを表示 | pip -V |
pipの主要コマンドとオプション一覧を表示 | pip help |
pip コマンドの内容とオプションを表示 | pip <コマンド> -h |
(base) conda info -e # conda environments: # base * C:\Users\<User>\anaconda3 openvino_dev C:\Users\<User>\anaconda3\envs\openvino_dev py37 C:\Users\<User>\anaconda3\envs\py37 py38 C:\Users\<User>\anaconda3\envs\py38 py38_gan C:\Users\<User>\anaconda3\envs\py38_gan py38a C:\Users\<User>\anaconda3\envs\py38a py_learn C:\Users\<User>\anaconda3\envs\py_learn↑ ↑ ↑
(base) conda config --show envs_dirs envs_dirs: - C:\Users\<User>\anaconda3\envs - C:\Users\<User>\.conda\envs - C:\Users\<User>\AppData\Local\conda\conda\envs・下記 conda info コマンドでも確認できる
(base) PS > conda info active environment : base active env location : C:\Users\<User>\anaconda3 shell level : 1 user config file : C:\Users\<User>\.condarc populated config files : conda version : 24.1.2 conda-build version : 24.1.2 python version : 3.9.18.final.0 solver : libmamba (default) virtual packages : __archspec=1=x86_64 __conda=24.1.2=0 __win=0=0 base environment : C:\Users\<User>\anaconda3 (writable) conda av data dir : C:\Users\<User>\anaconda3\etc\conda conda av metadata url : None channel URLs : https://repo.anaconda.com/pkgs/main/win-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/win-64 https://repo.anaconda.com/pkgs/r/noarch https://repo.anaconda.com/pkgs/msys2/win-64 https://repo.anaconda.com/pkgs/msys2/noarch package cache : C:\Users\<User>\anaconda3\pkgs C:\Users\<User>\.conda\pkgs C:\Users\<User>\AppData\Local\conda\conda\pkgs envs directories : C:\Users\<User>\anaconda3\envs C:\Users\<User>\.conda\envs C:\Users\<User>\AppData\Local\conda\conda\envs platform : win-64 user-agent : conda/24.1.2 requests/2.31.0 CPython/3.9.18 Windows/10 Windows/10.0.22631 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.6 aau/0.4.3 c/5snNlqzWCTJlZJsEo_5Qkg s/1b_caiWUs1MvdUtXNMyTaw e/kIf1P1TTAzJXAN1T4PJ4Zg administrator : False netrc file : None offline mode : False
C:\ProgramData\Anaconda3 C:\Users\<User>\.conda C:\Users\<User>\AppData\Local\conda C:\Users\<User>\anaconda3※ バージョンによって関連ディレクトリの場所は異なる
≪ PowerShell(推奨)≫
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\Users\<User>\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\<User>\anaconda3' "・次のように変更 <User> = ユーザー名 X: = anaconda_winを配置したドライブ
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\Users\<User>\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\<User>\anaconda3'; Set-Location 'X:\anaconda_win' "
≪ コマンドプロンプト ≫
%windir%\System32\cmd.exe "/K" C:\Users\<User>\anaconda3\Scripts\activate.bat C:\\Users\<User>\anaconda3・次のように変更 <User> = ユーザー名 X: = anaconda_winを配置したドライブ
%windir%\System32\cmd.exe "/K" C:\Users\<User>\anaconda3\Scripts\activate.bat C:\\Users\<User>\anaconda3 & cd /d X:\anaconda_win
(base) PS > echo $env:PYTHONPATH C:\anaconda_win\workspace_py37\mylib;C:\anaconda_win\workspace\lib
==> WARNING: A newer version of conda exists. <== current version: 23.7.4 latest version: 24.1.2 Please update conda by running $ conda update -n base -c defaults conda Or to minimize the number of packages updated during conda update use conda install conda=24.1.2
(base) PS > conda update --all
(base) PS > conda update conda
(base) PS > conda -V※ conda 24.1.2 (2024/03/02 現在)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
$profile・プロファイルが存在しなければ作成
new-item -path $profile -itemtype file -force※「Microsoft.PowerShell_profile.ps1」という空のファイルが作成される
# PowerShell 動作確認 echo 'Windows PowerShell' Get-Host # 'which' command function which($cmdname) { Get-Command $cmdname | Select-Object -ExpandProperty Definition }
Windows PowerShell Name : ConsoleHost Version : 5.1.22621.2506 InstanceId : 3ef6a3c4-1c1f-406d-8fe5-cec8caadc939 UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : ja-JP CurrentUICulture : ja-JP PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy DebuggerEnabled : True IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace (base) PS C:\anaconda_win>
(base) PS > which ls Get-ChildItem (base) PS > which python C:\Users\izuts\anaconda3\python.exe
$ cd ダウンロード $ ls Anaconda3-2023.09-0-Linux-x86_64.sh $ bash Anaconda3-2023.09-0-Linux-x86_64.sh Welcome to Anaconda3 2023.09-0 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue >>> ← Enter入力 : Do you accept the license terms? [yes|no] [no] >>> yes ← yes入力 Anaconda3 will now be installed into this location: /home/USER/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below [/home/USER/anaconda3] >>> ← Enter入力 : You can undo this by running `conda init --reverse $SHELL`? [yes|no] [no] >>> ← Enter入力 : conda init Thank you for installing Anaconda3!
$ source ~/anaconda3/etc/profile.d/conda.sh ← conda 初期設定(ターミナル起動後一度だけ実行) $ conda -V ← conda バージョン表示 conda 23.7.4 $ conda info -e ← conda 仮想環境一覧表示 # conda environments: # base /home/USER/anaconda3
[env_select.sh] Environment Select !! 0: Nomal 1: Anaconda (base) 2: Anaconda (py311)+cuda 3: Anaconda (py37) 4: Anaconda (py37x) 5: Anaconda (py37y) 6: Anaconda (py38) 7: Anaconda (py38a) 8: Anaconda (py38b)+cuda 9: Anaconda (py38_gan) Prease input '0-9' : 1 ** Anaconda environment (base) !! ** [anaconda_setup.sh] Anaconda3 (base) environment initialized conda activate base Exit >> 'conda deactivate' (base) $
$ chmod u+x anaconda_setup.sh $ chmod u+x env_select.sh
: source env_select.sh
#!/bin/sh echo "[anaconda_setup.sh] Anaconda3 (base) environment initialized" source $HOME/anaconda3/etc/profile.d/conda.sh echo "conda activate base" echo " Exit >> 'conda deactivate'" conda activate conda info -e echo export PYTHONPATH=$PYTHONPATH:$HOME/workspace_py37/mylib export PYTHONPATH=$PYTHONPATH:$HOME/workspace_2/mylib2 echo " PYTHONPATH =" $PYTHONPATH echo
(base) printenv PYTHONPATH :/home/mizutu/workspace_py37/mylib:/home/mizutu/workspace_2/mylib2
(***) $ which python (***) $ which pip (***) $ which conda
(***) $ which python3 (***) $ which pip3
(***) $ python -V