自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

商用利用可のconda環境をMacに構築してみた (conda+conda-forge)

Data Analytics
Data Analytics

Pythonのパッケージ管理ツールとしてPip,Conda,Mambaなどがあります。

今日はcondaコマンドを使えるようにしようと思います。

スポンサーリンク

condaについて

Anacondaを使っている方は馴染みのコマンドだと思いますが、Anacondaが特定の規模の法人や営利利用だと有償化したのでPipを使うようになった方も多いかも知れません。

Anaconda reserves the right to discontinue or alter any or all of the Repository. To avoid confusion, “commercial activities” are any use of the Repository which is NOT:
use solely by an individual using for personal, non-business purposes,
use by a student or employee of an educational institution in connection with educational activities,
use by an employee or volunteer on behalf of a non-profit institution in connection with the provision of charitable services,
use by a 501(c)(3) non-profit research institution in connection with non-commercial activities, such as research to address societal needs and global challenges, public policy development, or the advancement of science for the general good, where such work will not result in revenue to the institution, or use by entities in common control with each other with fewer than 200 employees in aggregate.
引用: https://legal.anaconda.com/policies/en/?name=terms-of-service (as of 22/11/19)

ただし私も勘違いしていたのですが、condaコマンド自体はオープンソースのBSDライセンスのツールなので無料で使えるようです。

Conda is an open source package management system and environment management system
引用: https://docs.conda.io/en/latest/

Conda is released under the 3-clause BSD license with the following terms:
引用: https://docs.conda.io/en/latest/license.html

condaはチャンネルと言われるレポジトリからPythonのパッケージをインストールするようですが、Anaconda社が管理しているDefaultチャンネルを利用する場合、法人の規模によってはライセンス料を支払う必要があるようです。ただし、コミュニティ管理であるconda-forgeというチャンネルは法人も無償で使うことが出来るようです。

By default, packages are automatically downloaded and updated from the default channel https://repo.anaconda.com/pkgs/ which may require a paid license, as described in the repository terms of service a commercial license. The conda-forge channel is free for all to use.
引用: https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html

図にすると下記になります。「青」は有償で利用しないといけない場合があるが、「赤」に関しては無料で使えるということのようです。

スポンサーリンク

AnacondaとMinicondaとは

ではAnacondaやMinicondaとは何なのでしょうか?

The fastest way to obtain conda is to install Miniconda, a mini version of Anaconda that includes only conda and its dependencies. If you prefer to have conda plus over 7,500 open-source packages, install Anaconda.
引用: https://conda.io/projects/conda/en/stable/user-guide/install/index.html

Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib and a few others
引用: https://docs.conda.io/en/latest/miniconda.html

Anaconda and Miniconda are distributions. A software distribution is a collection of packages, pre-built and pre-configured, that can be installed and used on a system.
引用: https://stackoverflow.com/questions/45421163/anaconda-vs-miniconda

調べてみましたが、どうやらAnacondaもMinicondaもディストリビューションと呼び、色々事前にPythonで分析など出来るように設定してくれたものをインストールできるツールのようです。

Anacondaはcondaと一緒に7500種類以上のパッケージやライブラリをインストールしてくれるもので、Minicondaはcondaとその他数種類の最低限必要なパッケージやライブラリをインストールしてくれるもののようです。

どちらをインストールしても良さそうですが、両方とも初期設定でdefaultチャンネルを使いパッケージをインストールするため、Anaconda社のいう商業活動(commercial activities)に当てはまる場合はライセンスを購入するかconda-forgeチャンネルを利用する必要があるということになります。

スポンサーリンク

法人で無料利用したい場合はconda+conda-forgeチャンネルを使う

個人やプライベート利用の場合は気にしなくても良いのですが、Anaconda社の定義する商用利用に当てはまる場合はライセンス購入するか下記の方法で無償でcondaを使うようにします。

  1. Minicondaをインストールし、チャンネルのデフォルトをconda-forgeに変更する
  2. 最初からconda-forgeをデフォルトチャンネルに設定してくれるMiniforgeを利用する

どうせなので両方試してみたいと思います。

スポンサーリンク

Minicondaをインストールしデフォルトチャンネルをconda-forgeに変更する

Minicondaのインストーラーをダウンロードしインスールする

インストーラーの一覧はこちらからダウンロードできます。今回はMacにインストールします。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O ~/miniconda.sh
Out[0]
--2022-11-19 20:38:32--  https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
repo.anaconda.com (repo.anaconda.com) をDNSに問いあわせています... 2606:4700::6810:8203, 2606:4700::6810:8303, 104.16.131.3, ...
repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8203|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 58693864 (56M) [application/x-sh]
`/Users/hinomaruc/miniconda.sh' に保存中

/Users/hinomaruc/miniconda.sh   100%[=======================================================>]  55.97M  18.3MB/s 時間 3.1s     

2022-11-19 20:38:35 (18.3 MB/s) - `/Users/hinomaruc/miniconda.sh' へ保存完了 [58693864/58693864]
bash ~/miniconda.sh -b -p $HOME/miniconda
Out[0]
PREFIX=/Users/hinomaruc/miniconda
Unpacking payload ...
Collecting package metadata (current_repodata.json): done                                                                       
Solving environment: done

  environment location: /Users/hinomaruc/miniconda

  added / updated specs:
    - brotlipy==0.7.0=py39h9ed2024_1003
    - ca-certificates==2022.3.29=hecd8cb5_1
    - certifi==2021.10.8=py39hecd8cb5_2
    - cffi==1.15.0=py39hc55c11b_1
    - charset-normalizer==2.0.4=pyhd3eb1b0_0
    - colorama==0.4.4=pyhd3eb1b0_0
    - conda-content-trust==0.1.1=pyhd3eb1b0_0
    - conda-package-handling==1.8.1=py39hca72f7f_0
    - conda==4.12.0=py39hecd8cb5_0
    - cryptography==36.0.0=py39hf6deb26_0
    - idna==3.3=pyhd3eb1b0_0
    - libcxx==12.0.0=h2f01273_0
    - libffi==3.3=hb1e8313_2
    - ncurses==6.3=hca72f7f_2
    - openssl==1.1.1n=hca72f7f_0
    - pip==21.2.4=py39hecd8cb5_0
    - pycosat==0.6.3=py39h9ed2024_0
    - pycparser==2.21=pyhd3eb1b0_0
    - pyopenssl==22.0.0=pyhd3eb1b0_0
    - pysocks==1.7.1=py39hecd8cb5_0
    - python.app==3=py39hca72f7f_0
    - python==3.9.12=hdfd78df_0
    - readline==8.1.2=hca72f7f_1
    - requests==2.27.1=pyhd3eb1b0_0
    - ruamel_yaml==0.15.100=py39h9ed2024_0
    - setuptools==61.2.0=py39hecd8cb5_0
    - six==1.16.0=pyhd3eb1b0_1
    - sqlite==3.38.2=h707629a_0
    - tk==8.6.11=h7bc2e8c_0
    - tqdm==4.63.0=pyhd3eb1b0_0
    - tzdata==2022a=hda174b7_0
    - urllib3==1.26.8=pyhd3eb1b0_0
    - wheel==0.37.1=pyhd3eb1b0_0
    - xz==5.2.5=h1de35cc_0
    - yaml==0.2.5=haf1e3a3_0
    - zlib==1.2.12=h4dc903c_1

The following NEW packages will be INSTALLED:

  brotlipy           pkgs/main/osx-64::brotlipy-0.7.0-py39h9ed2024_1003
  ca-certificates    pkgs/main/osx-64::ca-certificates-2022.3.29-hecd8cb5_1
  certifi            pkgs/main/osx-64::certifi-2021.10.8-py39hecd8cb5_2
  cffi               pkgs/main/osx-64::cffi-1.15.0-py39hc55c11b_1
  charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
  colorama           pkgs/main/noarch::colorama-0.4.4-pyhd3eb1b0_0
  conda              pkgs/main/osx-64::conda-4.12.0-py39hecd8cb5_0
  conda-content-tru~ pkgs/main/noarch::conda-content-trust-0.1.1-pyhd3eb1b0_0
  conda-package-han~ pkgs/main/osx-64::conda-package-handling-1.8.1-py39hca72f7f_0
  cryptography       pkgs/main/osx-64::cryptography-36.0.0-py39hf6deb26_0
  idna               pkgs/main/noarch::idna-3.3-pyhd3eb1b0_0
  libcxx             pkgs/main/osx-64::libcxx-12.0.0-h2f01273_0
  libffi             pkgs/main/osx-64::libffi-3.3-hb1e8313_2
  ncurses            pkgs/main/osx-64::ncurses-6.3-hca72f7f_2
  openssl            pkgs/main/osx-64::openssl-1.1.1n-hca72f7f_0
  pip                pkgs/main/osx-64::pip-21.2.4-py39hecd8cb5_0
  pycosat            pkgs/main/osx-64::pycosat-0.6.3-py39h9ed2024_0
  pycparser          pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
  pyopenssl          pkgs/main/noarch::pyopenssl-22.0.0-pyhd3eb1b0_0
  pysocks            pkgs/main/osx-64::pysocks-1.7.1-py39hecd8cb5_0
  python             pkgs/main/osx-64::python-3.9.12-hdfd78df_0
  python.app         pkgs/main/osx-64::python.app-3-py39hca72f7f_0
  readline           pkgs/main/osx-64::readline-8.1.2-hca72f7f_1
  requests           pkgs/main/noarch::requests-2.27.1-pyhd3eb1b0_0
  ruamel_yaml        pkgs/main/osx-64::ruamel_yaml-0.15.100-py39h9ed2024_0
  setuptools         pkgs/main/osx-64::setuptools-61.2.0-py39hecd8cb5_0
  six                pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
  sqlite             pkgs/main/osx-64::sqlite-3.38.2-h707629a_0
  tk                 pkgs/main/osx-64::tk-8.6.11-h7bc2e8c_0
  tqdm               pkgs/main/noarch::tqdm-4.63.0-pyhd3eb1b0_0
  tzdata             pkgs/main/noarch::tzdata-2022a-hda174b7_0
  urllib3            pkgs/main/noarch::urllib3-1.26.8-pyhd3eb1b0_0
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
  xz                 pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
  yaml               pkgs/main/osx-64::yaml-0.2.5-haf1e3a3_0
  zlib               pkgs/main/osx-64::zlib-1.2.12-h4dc903c_1

Preparing transaction: done
Executing transaction: \ 
done
installation finished.

インストールが完了しました。3分もかかっていないと思います。condaはパッケージだけではなく、Python環境の管理もしてくれるのでpython-3.9.12もインストールしてくれるようです。

condaが参照しているチャンネルの確認

condaのbase環境内に入ります(venvと似てますね)
source ~/miniconda/bin/activate

そうすると、ターミナルの先頭に (base) という文字が表示されるようになります。

(base) hinomaruc@myMBP ~ % 

PATHを通すなどはconda initやconda init zsh (MacOS Catalina以降)を実行すれば.bash_profileに記載などしてくれるようですが、私は都度PATHを指定するかマニュアルでやることにします。

ちなみに参考程度ですが、conda initを実行すると.bash_profileに下記設定が書き込まれました。

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/hinomaruc/miniconda/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/hinomaruc/miniconda/etc/profile.d/conda.sh" ]; then
        . "/Users/hinomaruc/miniconda/etc/profile.d/conda.sh"
    else
        export PATH="/Users/hinomaruc/miniconda/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<
condaの情報確認
(base) hinomaruc@myMBP miniconda % conda info
Out[0]
・・・一部省略・・・
     active environment : base
    active env location : /Users/hinomaruc/miniconda
          conda version : 4.12.0
         python version : 3.9.12.final.0
       base environment : /Users/hinomaruc/miniconda  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
・・・一部省略・・・

チャンネルは https://repo.anaconda.com を利用しているので、Anaconda社管理のレポジトリを参照してしまっているようです。

こちらを消去し、conda-forgeを参照するように変更します。

利用可能なチャンネルの確認
(base) hinomaruc@myMBP ~ % conda config --show channels
Out[0]
channels:
  - defaults
defaultsのURL確認
(base) hinomaruc@myMBP ~ % conda config --show custom_multichannels
Out[0]
custom_multichannels:
  defaults: 
    - https://repo.anaconda.com/pkgs/main
    - https://repo.anaconda.com/pkgs/r
  local: 
インストール済みのライブラリの確認
# チャンネルも表示する
(base) hinomaruc@myMBP ~ % conda list -c
Out[0]
defaults/osx-64::brotlipy-0.7.0-py39h9ed2024_1003
defaults/osx-64::ca-certificates-2022.3.29-hecd8cb5_1
defaults/osx-64::certifi-2021.10.8-py39hecd8cb5_2
defaults/osx-64::cffi-1.15.0-py39hc55c11b_1
defaults/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
defaults/noarch::colorama-0.4.4-pyhd3eb1b0_0
defaults/osx-64::conda-4.12.0-py39hecd8cb5_0
・・・省略・・・

defaultsチャンネルのパッケージがインストールされているようです。

defaultsチャンネルの消去とconda-forgeの追加

defaultsチャンネルの消去
(base) hinomaruc@myMBP ~ % conda config --remove channels defaults
(base) hinomaruc@myMBP ~ % conda config --show channels
Out[0]
channels: []

チャンネルがなくなりました。

conda-forgeチャンネルの追加
# 参考: https://conda-forge.org/
(base) hinomaruc@myMBP ~ % conda config --add channels conda-forge 
(base) hinomaruc@myMBP ~ % conda config --set channel_priority strict
チャンネルの確認
(base) hinomaruc@myMBP ~ % conda config --show channels
Out[0]
channels:
  - conda-forge

conda-forgeが登録されました。

しかし、インストールされているパッケージはdefaultsチャンネルのものなので、conda-forgeのものに変更してあげる必要があります。

個々のパッケージやライブラリをconda install -c conda-forge --override-channels xxx のようにconda-forgeチャンネル指定で上書きしてあげてもよいですが、conda update condaでMinicodaをアップデートしてあげることでconda-forgeのパッケージにまとめてアップデートすることが出来るのでおすすめです。

Minicondaのアップデート
# 参考: https://conda.io/projects/conda/en/stable/user-guide/install/macos.html#updating-anaconda-or-miniconda
(base) hinomaruc@myMBP ~ % conda update conda
Out[0]
Collecting package metadata (current_repodata.json): done
Solving environment: done

・・・省略・・・

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    brotlipy-0.7.0             |py39ha30fb19_1005         368 KB  conda-forge
    bzip2-1.0.8                |       h0d85af4_4         155 KB  conda-forge
    ca-certificates-2022.9.24  |       h033912b_0         150 KB  conda-forge
    certifi-2022.9.24          |     pyhd8ed1ab_0         155 KB  conda-forge
    cffi-1.15.1                |   py39h131948b_2         220 KB  conda-forge
    charset-normalizer-2.1.1   |     pyhd8ed1ab_0          36 KB  conda-forge
    colorama-0.4.6             |     pyhd8ed1ab_0          25 KB  conda-forge
    conda-22.9.0               |   py39h6e9494a_2         962 KB  conda-forge
    conda-package-handling-1.9.0|   py39ha30fb19_1         1.7 MB  conda-forge
    cryptography-38.0.3        |   py39hbeae22c_0         1.2 MB  conda-forge
    idna-3.4                   |     pyhd8ed1ab_0          55 KB  conda-forge
    libffi-3.4.2               |       h0d85af4_5          50 KB  conda-forge
    libsqlite-3.40.0           |       ha978bb4_0         873 KB  conda-forge
    libzlib-1.2.13             |       hfd90126_4          64 KB  conda-forge
    ncurses-6.3                |       h96cf925_1         915 KB  conda-forge
    openssl-3.0.7              |       hfd90126_0         2.5 MB  conda-forge
    pip-22.3.1                 |     pyhd8ed1ab_0         1.5 MB  conda-forge
    pycosat-0.6.4              |   py39ha30fb19_1         110 KB  conda-forge
    pycparser-2.21             |     pyhd8ed1ab_0         100 KB  conda-forge
    pyopenssl-22.1.0           |     pyhd8ed1ab_0         122 KB  conda-forge
    pysocks-1.7.1              |     pyha2e5f31_6          19 KB  conda-forge
    python-3.9.13              |hf8d34f4_0_cpython        12.8 MB  conda-forge
    python.app-1.4             |   py39ha30fb19_1          13 KB  conda-forge
    python_abi-3.9             |           2_cp39           4 KB  conda-forge
    readline-8.1.2             |       h3899abd_0         266 KB  conda-forge
    requests-2.28.1            |     pyhd8ed1ab_1          53 KB  conda-forge
    ruamel_yaml-0.15.80        |py39ha30fb19_1008         246 KB  conda-forge
    setuptools-65.5.1          |     pyhd8ed1ab_0         731 KB  conda-forge
    sqlite-3.40.0              |       h9ae0607_0         885 KB  conda-forge
    tk-8.6.12                  |       h5dbffcc_0         3.4 MB  conda-forge
    toolz-0.12.0               |     pyhd8ed1ab_0          48 KB  conda-forge
    tqdm-4.64.1                |     pyhd8ed1ab_0          82 KB  conda-forge
    tzdata-2022f               |       h191b570_0         118 KB  conda-forge
    urllib3-1.26.11            |     pyhd8ed1ab_0         102 KB  conda-forge
    wheel-0.38.4               |     pyhd8ed1ab_0          32 KB  conda-forge
    xz-5.2.6                   |       h775f41a_0         233 KB  conda-forge
    yaml-0.2.5                 |       h0d85af4_2          82 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        30.1 MB

The following NEW packages will be INSTALLED:

  bzip2              conda-forge/osx-64::bzip2-1.0.8-h0d85af4_4
  libsqlite          conda-forge/osx-64::libsqlite-3.40.0-ha978bb4_0
  libzlib            conda-forge/osx-64::libzlib-1.2.13-hfd90126_4
  python_abi         conda-forge/osx-64::python_abi-3.9-2_cp39
  toolz              conda-forge/noarch::toolz-0.12.0-pyhd8ed1ab_0

The following packages will be REMOVED:

  conda-content-trust-0.1.1-pyhd3eb1b0_0
  libcxx-12.0.0-h2f01273_0
  six-1.16.0-pyhd3eb1b0_1
  zlib-1.2.12-h4dc903c_1

The following packages will be UPDATED:

  brotlipy           pkgs/main::brotlipy-0.7.0-py39h9ed202~ --> conda-forge::brotlipy-0.7.0-py39ha30fb19_1005
  ca-certificates    pkgs/main::ca-certificates-2022.3.29-~ --> conda-forge::ca-certificates-2022.9.24-h033912b_0
  certifi            pkgs/main/osx-64::certifi-2021.10.8-p~ --> conda-forge/noarch::certifi-2022.9.24-pyhd8ed1ab_0
  cffi                pkgs/main::cffi-1.15.0-py39hc55c11b_1 --> conda-forge::cffi-1.15.1-py39h131948b_2
  charset-normalizer pkgs/main::charset-normalizer-2.0.4-p~ --> conda-forge::charset-normalizer-2.1.1-pyhd8ed1ab_0
  colorama           pkgs/main::colorama-0.4.4-pyhd3eb1b0_0 --> conda-forge::colorama-0.4.6-pyhd8ed1ab_0
  conda              pkgs/main::conda-4.12.0-py39hecd8cb5_0 --> conda-forge::conda-22.9.0-py39h6e9494a_2
  conda-package-han~ pkgs/main::conda-package-handling-1.8~ --> conda-forge::conda-package-handling-1.9.0-py39ha30fb19_1
  cryptography       pkgs/main::cryptography-36.0.0-py39hf~ --> conda-forge::cryptography-38.0.3-py39hbeae22c_0
  idna                     pkgs/main::idna-3.3-pyhd3eb1b0_0 --> conda-forge::idna-3.4-pyhd8ed1ab_0
  libffi                   pkgs/main::libffi-3.3-hb1e8313_2 --> conda-forge::libffi-3.4.2-h0d85af4_5
  openssl              pkgs/main::openssl-1.1.1n-hca72f7f_0 --> conda-forge::openssl-3.0.7-hfd90126_0
  pip                pkgs/main/osx-64::pip-21.2.4-py39hecd~ --> conda-forge/noarch::pip-22.3.1-pyhd8ed1ab_0
  pycosat            pkgs/main::pycosat-0.6.3-py39h9ed2024~ --> conda-forge::pycosat-0.6.4-py39ha30fb19_1
  pyopenssl          pkgs/main::pyopenssl-22.0.0-pyhd3eb1b~ --> conda-forge::pyopenssl-22.1.0-pyhd8ed1ab_0
  pysocks            pkgs/main/osx-64::pysocks-1.7.1-py39h~ --> conda-forge/noarch::pysocks-1.7.1-pyha2e5f31_6
  python                pkgs/main::python-3.9.12-hdfd78df_0 --> conda-forge::python-3.9.13-hf8d34f4_0_cpython
  requests           pkgs/main::requests-2.27.1-pyhd3eb1b0~ --> conda-forge::requests-2.28.1-pyhd8ed1ab_1
  setuptools         pkgs/main/osx-64::setuptools-61.2.0-p~ --> conda-forge/noarch::setuptools-65.5.1-pyhd8ed1ab_0
  sqlite                pkgs/main::sqlite-3.38.2-h707629a_0 --> conda-forge::sqlite-3.40.0-h9ae0607_0
  tk                        pkgs/main::tk-8.6.11-h7bc2e8c_0 --> conda-forge::tk-8.6.12-h5dbffcc_0
  tqdm                  pkgs/main::tqdm-4.63.0-pyhd3eb1b0_0 --> conda-forge::tqdm-4.64.1-pyhd8ed1ab_0
  tzdata                 pkgs/main::tzdata-2022a-hda174b7_0 --> conda-forge::tzdata-2022f-h191b570_0
  urllib3            pkgs/main::urllib3-1.26.8-pyhd3eb1b0_0 --> conda-forge::urllib3-1.26.11-pyhd8ed1ab_0
  wheel                pkgs/main::wheel-0.37.1-pyhd3eb1b0_0 --> conda-forge::wheel-0.38.4-pyhd8ed1ab_0
  xz                         pkgs/main::xz-5.2.5-h1de35cc_0 --> conda-forge::xz-5.2.6-h775f41a_0
  yaml                     pkgs/main::yaml-0.2.5-haf1e3a3_0 --> conda-forge::yaml-0.2.5-h0d85af4_2

The following packages will be SUPERSEDED by a higher-priority channel:

  ncurses                 pkgs/main::ncurses-6.3-hca72f7f_2 --> conda-forge::ncurses-6.3-h96cf925_1
  pycparser          pkgs/main::pycparser-2.21-pyhd3eb1b0_0 --> conda-forge::pycparser-2.21-pyhd8ed1ab_0
  python.app         pkgs/main::python.app-3-py39hca72f7f_0 --> conda-forge::python.app-1.4-py39ha30fb19_1
  readline             pkgs/main::readline-8.1.2-hca72f7f_1 --> conda-forge::readline-8.1.2-h3899abd_0
  ruamel_yaml        pkgs/main::ruamel_yaml-0.15.100-py39h~ --> conda-forge::ruamel_yaml-0.15.80-py39ha30fb19_1008

・・・省略・・・
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

conda-forgeを参照するようになりましたね。ついでにPythonのバージョンも3.9.12から3.9.13にアップデートされたようです。

念のためconda list -cコマンドで確認

(base) hinomaruc@myMBP ~ % conda list -c
Out[0]
conda-forge/osx-64::brotlipy-0.7.0-py39ha30fb19_1005
conda-forge/osx-64::bzip2-1.0.8-h0d85af4_4
conda-forge/osx-64::ca-certificates-2022.9.24-h033912b_0
conda-forge/noarch::certifi-2022.9.24-pyhd8ed1ab_0
conda-forge/osx-64::cffi-1.15.1-py39h131948b_2
conda-forge/noarch::charset-normalizer-2.1.1-pyhd8ed1ab_0
conda-forge/noarch::colorama-0.4.6-pyhd8ed1ab_0
conda-forge/osx-64::conda-22.9.0-py39h6e9494a_2
・・・省略・・・

conda-forgeが先頭につくようになりました。

numpy を condaコマンドでインストールしてみる
conda install numpy
Out[0]
・・・省略・・・
The following NEW packages will be INSTALLED:

  libblas            conda-forge/osx-64::libblas-3.9.0-16_osx64_openblas None
  libcblas           conda-forge/osx-64::libcblas-3.9.0-16_osx64_openblas None
  libcxx             conda-forge/osx-64::libcxx-14.0.6-hccf4f1f_0 None
  libgfortran        conda-forge/osx-64::libgfortran-5.0.0-9_5_0_h97931a8_26 None
  libgfortran5       conda-forge/osx-64::libgfortran5-11.3.0-h082f757_26 None
  liblapack          conda-forge/osx-64::liblapack-3.9.0-16_osx64_openblas None
  libopenblas        conda-forge/osx-64::libopenblas-0.3.21-openmp_h429af6e_3 None
  llvm-openmp        conda-forge/osx-64::llvm-openmp-15.0.5-h61d9ccf_0 None
  numpy              conda-forge/osx-64::numpy-1.23.4-py39hdfa1d0c_1 None
・・・省略・・・
Retrieving notices: ...working... done

conda-forgeチャンネルでインストールされるようなので問題なさそうです。

condaの環境から抜ける
conda deactivate
Out[0]
hinomaruc@myMBP ~ % 

ターミナルの先頭に(base)がついていなければbase環境から抜けることが出来ています。

スポンサーリンク

Minicondaをアンインストールしたい場合

こちらの手順に沿って削除します。

下記ディレクトリと.bash_profileに記載されたMiniconda関係の記述を消すだけで良さそうです。

Miniconda関係のディレクトリの消去
rm -rf ~/miniconda
rm -rf ~/.condarc ~/.conda ~/.continuum
スポンサーリンク

Miniforge3でconda+conda-forge環境を構築

Miniforge3はこちらのgithubにまとめがあります。

Miniforge3のダウンロード
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh -O ~/miniforge.sh
Out[0]
--2022-11-19 21:57:45--  https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh
・・・省略・・・
/Users/hinomaruc/miniforge.sh   100%[=======================================================>]  41.06M  2.73MB/s 時間 12s      
2022-11-19 21:57:59 (3.42 MB/s) - `/Users/hinomaruc/miniforge.sh' へ保存完了 [43052853/43052853]
Miniforge3のインストール
bash ~/miniforge.sh $HOME/miniforge 

途中ENTERを押したり、ライセンスに同意したりする必要があります。

  1. In order to continue the installation process, please review the license
    agreement.Please, press ENTER to continue (ライセンスの確認)

→ ENTER

  1. Do you accept the license terms? [yes|no] (ライセンスに同意するか)

→ yes

  1. Miniforge3 will now be installed into this location: /Users/hinomaruc/miniforge3 (miniforge3のインストール場所の指定)
    → ENTER

  2. Do you wish the installer to initialize Miniforge3 by running conda init? [yes|no] (miniforge3の初期設定するかどうか。私はPATHをいじりたくないのでnoにしました)
    → no

Out[0]

Welcome to Miniforge3 22.9.0-1

・・・省略・・・
  + brotlipy                    0.7.0  py310h90acd4f_1005  conda-forge/osx-64     Cached
  + bzip2                       1.0.8  h0d85af4_4          conda-forge/osx-64     Cached
  + ca-certificates         2022.9.24  h033912b_0          conda-forge/osx-64     Cached
  + certifi                 2022.9.24  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + cffi                       1.15.1  py310ha78151a_2     conda-forge/osx-64     Cached
  + charset-normalizer          2.1.1  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + colorama                    0.4.6  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + conda                      22.9.0  py310h2ec42d9_1     conda-forge/osx-64     Cached
  + conda-package-handling      1.9.0  py310h90acd4f_1     conda-forge/osx-64     Cached
  + cryptography               38.0.2  py310hdd0c95c_2     conda-forge/osx-64     Cached
  + idna                          3.4  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + libffi                      3.4.2  h0d85af4_5          conda-forge/osx-64     Cached
  + libsqlite                  3.39.4  ha978bb4_0          conda-forge/osx-64     Cached
  + libzlib                    1.2.13  hfd90126_4          conda-forge/osx-64     Cached
  + ncurses                       6.3  h96cf925_1          conda-forge/osx-64     Cached
  + openssl                     3.0.5  hfd90126_2          conda-forge/osx-64     Cached
  + pip                          22.3  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + pycosat                     0.6.4  py310h90acd4f_1     conda-forge/osx-64     Cached
  + pycparser                    2.21  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + pyopenssl                  22.1.0  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + pysocks                     1.7.1  pyha2e5f31_6        conda-forge/noarch     Cached
  + python                     3.10.6  hc14f532_0_cpython  conda-forge/osx-64     Cached
  + python_abi                   3.10  2_cp310             conda-forge/osx-64     Cached
  + readline                    8.1.2  h3899abd_0          conda-forge/osx-64     Cached
  + requests                   2.28.1  pyhd8ed1ab_1        conda-forge/noarch     Cached
  + ruamel_yaml               0.15.80  py310h90acd4f_1008  conda-forge/osx-64     Cached
  + setuptools                 65.5.0  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + tk                         8.6.12  h5dbffcc_0          conda-forge/osx-64     Cached
  + toolz                      0.12.0  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + tqdm                       4.64.1  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + tzdata                      2022e  h191b570_0          conda-forge/noarch     Cached
  + urllib3                   1.26.11  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + wheel                      0.37.1  pyhd8ed1ab_0        conda-forge/noarch     Cached
  + xz                          5.2.6  h775f41a_0          conda-forge/osx-64     Cached
  + yaml                        0.2.5  h0d85af4_2          conda-forge/osx-64     Cached

  Summary:

  Install: 35 packages

  Total download: 0 B
・・・省略・・・
You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:

eval "$(/Users/hinomaruc/miniforge3/bin/conda shell.YOUR_SHELL_NAME hook)" 

To install conda's shell functions for easier access, first activate, then:

conda init

If you'd prefer that conda's base environment not be activated on startup, 
   set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

Thank you for installing Miniforge3!
miniforge3のbase環境に入る
source ~/miniforge3/bin/activate
(base) hinomaruc@myMBP ~ % conda info
Out[0]
・・・一部省略・・・
     active environment : base
    active env location : /Users/hinomaruc/miniforge3
          conda version : 22.9.0
         python version : 3.10.6.final.0
       base environment : /Users/hinomaruc/miniforge3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/osx-64
                          https://conda.anaconda.org/conda-forge/noarch

channel URLsが最初からconda-forgeのものになっていますね。

チャンネルの確認
(base) hinomaruc@myMBP ~ % conda config --show channels
Out[0]
channels:
  - conda-forge

conda-forgeしか登録されていません。

miniforge3の方がconda環境の構築が楽ですね 笑

スポンサーリンク

まとめ

Anacondaが有償化してから会社でcondaコマンドを使うことを避けていましたがこれなら使っても良さそうです。特にminiforge3は構築がかなり楽ちんなのでおすすめです。ライセンスを購入してまでという200名以上の企業所属の方はconda+conda-forgeの環境を構築してはいかがでしょうか?

タイトルとURLをコピーしました