LoginSignup
39
62

More than 3 years have passed since last update.

Anaconda有償化に伴いMiniconda+conda-forgeに引越しをした

Last updated at Posted at 2021-03-30

背景

  • 従業員数200名以上の営利企業でのAnaconda利用が有償化された.

概要

  • Anacondaの有償化を受けてMiniconda+conda-forge環境に引越しをしたので, 手順をまとめた.
  • Pythonパッケージ一覧を出力するbatファイルを作成した.
  • Pythonパッケージ一覧を一括でインストールするbatファイルを作成した.
    • pip版とconda版あり.

本記事で触れない内容

  • 仮想環境関連
    • **env(venv, pyenv, pipenv)
    • docker

対象読者

  • 新規にPythonをインストールする方 (以下, 新規Pythonユーザ).
  • すでにAnacondaを使用してPythonをインストールしている方 (以下, 既存Anacondaユーザ).
    • かつ, AnacondaをアンインストールしてMiniconda環境に移行する方.

作業環境

No. 項目 想定
1 OS Windows10

対応するGitHubリポジトリとQiita記事


作業手順

batファイルのダウンロード

  1. py_miniconda_env_constructionリポジトリへアクセスする.

  2. git clone または zipのダウンロード を行い, batファイルを取得する.

    • git cloneできない方:
      1. 右上の「Code」を押下する.
      2. 「Download ZIP」を押下する.
      3. 任意の場所に保存する.
      4. zipファイルの解凍を行う.
    • git clone command:
     git clone https://github.com/laplaciannin102/py_miniconda_env_construction.git
    
  • batファイルの一覧(3種類)
No. batファイル名 説明
1 no001_backup_python_packages.bat - Pythonにおけるインストール済みパッケージの一覧をバックアップテキストファイルとして取得する.
2 no002_conda_install_from_files.bat - conda installを使用して, テキストファイルから一括でパッケージをインストールする.
3 no003_pip_install_from_files.bat - pip installを使用して, テキストファイルから一括でパッケージをインストールする.

Anaconda環境から引越す準備

  1. インストール済みパッケージバックアップ用batファイルを実行する.

    • ダブルクリック or 右クリックして「開く」 or 右クリックして「管理者として実行」
    • 実行ファイル名:
      • no001_backup_python_packages.bat
    • 処理概要:
      • インストール済みパッケージの一覧をバックアップテキストとして取得する.
      • python_pkgs_filesという名前のディレクトリを作成し, その中にテキストファイルを格納する.
      • Anacondaにプリインストールされているパッケージの一覧も同時に取得する.
      • Anaconda package lists: https://docs.anaconda.com/anaconda/packages/pkg-docs/
    • 出力先ディレクトリ:
      • ./python_pkgs_files/
    • 出力ファイル一覧:
      • いわゆるrequirements.txtと同様のファイル群.
      • yyyymmddは作業日付.
    ファイル名 説明
    conda_pkgs_list_raw.txt - condaのパッケージ一覧ファイル.
    - conda list --exportで取得.
    conda_pkgs_list_eq_yyyymmdd.txt - condaのパッケージ一覧のversionを [package]==x.x.x で設定したファイル.
    conda_pkgs_list_geq_yyyymmdd.txt - condaのパッケージ一覧のversionを [package]>=x.x.x で設定したファイル.
    pip_pkgs_list_raw.txt - pipのパッケージ一覧ファイル.
    - pip list --format freezeで取得.
    - pip freezeだとversion部分がURLになってしまう場合がある.
    pip_pkgs_list_eq_yyyymmdd.txt - pipのパッケージ一覧のversionを [package]==x.x.x で設定したファイル.
    pip_pkgs_list_geq_yyyymmdd.txt - pipのパッケージ一覧のversionを [package]>=x.x.x で設定したファイル.
    anaconda_preinstall_pkgs_list_eq_yyyymmdd.txt - Anacondaにプリインストールされているパッケージの一覧ファイル.
    - これを使用することで, Anaconda環境と同様のパッケージをインストール可能.
    anaconda_preinstall_pkgs_list_eq_sample.txt - sampleファイル.
    - anaconda_preinstall_pkgs_list_eq_yyyymmdd.txtと同様の内容.

Anacondaのアンインストール

  1. Anaconda Promptを起動する.
  2. 次のコマンドを入力し, anaconda-cleanというパッケージをインストールする.

    conda install anaconda-clean
    
  3. 次のコマンドを入力し, Anaconda関連のファイルやディレクトリを削除する.

    • 各項目について確認しながら削除を行う場合:
    anaconda-clean
    
    • 各項目について確認せず一括で削除を行う場合:
    anaconda-clean --yes
    
  4. Windowsの場合, コントロールパネルを起動する.

  5. プログラムと機能 > プログラムのアンインストール を開く.

  6. Anacondaを選択し, アンインストールする.


Miniconda+conda-forge環境構築

  1. Minicondaのインストーラを下記URLからダウンロードする.

  2. インストーラを実行し, Minicondaをインストールする.

    1. 「Miniconda3~.exe」を実行する. セットアップウィザードが表示される.
    2. 最初の画面で, 「Next」を押下する.
    3. 「I Agree」を押下する.
    4. Install forはJust Meのまま「Next」を押下する.
    5. インストール先の指定では任意の場所を指定して, 「Next」を押下する.
      • 好みが無い方は初期設定のままでok.
    6. 「Add Miniconda3 to my PATH environment variable」にチェックを入れる.
    7. 「Install」を押下する.
    8. インストールされるので待機する.
  3. (インストール済みMinicondaの)Anaconda Promptを立ち上げる.

    • Windows10の場合, 左下の虫眼鏡アイコンから検索に「anaconda prompt」と入力すれば表示される.
    • Anaconda Prompt(Miniconda3) というソフト名.
    • 他cmdなどのコマンドラインでも可能.
  4. 次のコマンドを入力し, condaのチャネルの設定にconda-forgeチャネルを追加する.

    conda config --add channels conda-forge
    
  5. 次のコマンドを入力し, condaのチャネル一覧を確認する.

    conda config --show channels
    
    • conda config --get channelsでも可能.
  6. 次のコマンドを入力し, condaのチャネルの設定からdefaultsチャネルを削除する.

    conda config --remove channels defaults
    
  7. 次のコマンドを入力し, condaのチャネル一覧を確認する. チャネル一覧からdefaultsが消えていることを確認する.

    conda config --show channels
    
    • conda config --get channelsでも可能.
  8. 次のコマンドを入力し, conda自体を最新版にUpdateする.

    conda update conda
    
  9. 次のコマンドを入力し, インストール済みパッケージを全て最新版にUpdateする.

    • ※Miniconda使用のため, 不要.
    conda update --all
    
  10. パッケージインストール用batファイルを実行する.

    • ダブルクリック or 右クリックして「開く」 or 右クリックして「管理者として実行」
    • 使用するパッケージ管理ツール毎に実行するbatファイルが異なる.
      • condaの場合:
      • no002_conda_install_from_files.bat
      • pipの場合:
      • no003_pip_install_from_files.bat
    • 「>>○○」という行は, 裏でどのようなコマンドが実行されてるか参考までに表示しているもの.
  11. コマンドライン(黒い画面)が立ち上がる. 次のsampleの様に, 「list of files in python_pkgs_files」の下にインストール対象となるパッケージ一覧が記載されたテキストファイルが一覧表示されていることを確認する.

    • 新規Pythonユーザは「anaconda_preinstall_pkgs_list_eq_sample.txt」しか表示されない.
      • anaconda_preinstall_pkgs_list_eq_yyyymmdd.txt
      • Anacondaにプリインストールされているパッケージの一覧ファイル.
      • これを使用することで, Anaconda環境と同様のパッケージをインストール可能.」
    • sample
      list of files in python_pkgs_files
    
      >>call dir /b python_pkgs_files
      ========================================
      anaconda_preinstall_pkgs_list_eq_20210330.txt
      anaconda_preinstall_pkgs_list_eq_sample.txt
      conda_pkgs_list_eq_20210330.txt
      conda_pkgs_list_geq_20210330.txt
      conda_pkgs_list_raw.txt
      pip_pkgs_list_eq_20210330.txt
      pip_pkgs_list_geq_20210330.txt
      pip_pkgs_list_raw.txt
      ========================================
    
      select a packages file name : 
    
  12. 「select a packages file name : 」の右側に, インストールしたいテキストファイル名を入力し, Enterを押下する.

    • 入力はコピペでOK!!
    • [推奨] Anacondaで元々プリインストールされていたパッケージを全てインストールする場合は, 「anaconda_preinstall_pkgs_list_eq_yyyymmdd.txt」または「anaconda_preinstall_pkgs_list_eq_sample.txt」を選択する.
    • 次のsampleは「pip_pkgs_list_geq_20210330.txt」を選択した例.
    • sample
      list of files in python_pkgs_files
    
      >>call dir /b python_pkgs_files
      ========================================
      anaconda_preinstall_pkgs_list_eq_20210330.txt
      anaconda_preinstall_pkgs_list_eq_sample.txt
      conda_pkgs_list_eq_20210330.txt
      conda_pkgs_list_geq_20210330.txt
      conda_pkgs_list_raw.txt
      pip_pkgs_list_eq_20210330.txt
      pip_pkgs_list_geq_20210330.txt
      pip_pkgs_list_raw.txt
      ========================================
    
      select a packages file name : pip_pkgs_list_geq_20210330.txt
    
  13. pipの場合, 「Do you want to install it as a user??」とユーザインストールを行うか聞かれるので, ユーザインストールする場合は「y」(Yesの意味), そうでない場合は「n」(Noの意味)を入力し, Enterを押下する.

    • y」を選択すると, pip install --user [package]を行う.
    • ユーザインストールが分からない方:
      • 「管理者権限がある」かつ「どのユーザもパッケージを使用したい」: n
      • それ以外: y
      • 迷った場合, 「y」を推奨.
  14. パッケージの一括インストールが開始される.

    • 複数のパッケージ管理ツールを使用する場合, 複数のテキストファイルからパッケージをインストールする場合は10の手順を複数回実行する.
    • [注意事項] condaを使用して大量のインストールを行うと何時間もかかる場合があるので, 放置しておく.

[終わり]


Appendix

batファイルの中身概要

  • 詳しくはGitHubリポジトリからbatファイルを直接見てください.

  • no001_backup_python_packages.bat

  set py_pkgs_files_dpath=python_pkgs_files

  rem ディレクトリを作成する.
  echo make directory for packages files
  call mkdir %py_pkgs_files_dpath%

  rem エラー対策のアップデート
  echo command1 to avoid conda errors
  echo y|call conda install anaconda

  rem エラー対策のアップデート
  echo command2 to avoid conda errors
  echo y|call conda update --all

  set conda_list_file0=%py_pkgs_files_dpath%/conda_pkgs_list_raw.txt

  rem condaのパッケージ一覧を出力する.
  echo output conda packages file
  call conda list --export > %conda_list_file0%

  set pip_list_file0=%py_pkgs_files_dpath%/pip_pkgs_list_raw.txt

  rem pipのパッケージ一覧を出力する.
  echo output pip packages file
  call pip list --format freeze > %pip_list_file0%
  • no002_conda_install_from_files.bat
  rem ファイルから1行ずつ読み込んでconda installを行う.
  rem yesかnoか聞かれる場合があるので, 全てyes(y)で答える.
  rem input_pkgs_fpathにはファイルパスをセット.
  for /f %%l in (%input_pkgs_fpath%) do (
      echo y|call conda install "%%l"
  )
  • no003_pip_install_from_files.bat
  rem ファイルから1行ずつ読み込んでpip installを行う.
  rem input_pkgs_fpathにはファイルパスをセット.
  for /f %%l in (%input_pkgs_fpath%) do (
      call pip install "%%l"
  )

参考

Anaconda有償化関連

Anaconda全般

39
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
62