python環境構築 Miniconda3ハンズオン 複数バージョンを共存させる


できるようになること

  • Miniconda3を使ってwindowsにpython環境を構築する
  • 複数のバージョンのpython環境を同居させることができる
  • こっちのscriptはpython3.5、こっちのscriptはpython3.7やpython2.7という風に複数の環境を共存させることができる

Miniconda3のインストール

  • 公式にアクセスして自分のOSとCPUに合わせてインストールプログラムをダウンロード
    • Miniconda3の最新版でよい
  • ダウンロードしたexeを実行してウィザードを進めてインストール
  • Anacondaというはじめからいろんなツールが入っているものもあります。
  • インストール後コマンドプロンプトでcondaコマンドが通ればOK
C:\>conda -V
conda 4.7.10
  • コマンドが通らない場合は環境変数のPATHにconda.exeの在り処を設定する

    • だいたいここらへんにあると思う%USERPROFILE%\AppData\Local\Continuum\miniconda3\Scripts
  • コマンドはcondaと入力すると使えるコマンド一覧がでてきます。

C:\>conda
usage: conda-script.py [-h] [-V] command ...

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
  command
    clean        Remove unused packages and caches.
    config       Modify configuration values in .condarc. This is modeled
                 after the git config command. Writes to the user .condarc
                 file (C:\Users\xxxxxx\.condarc) by default.
    create       Create a new conda environment from a list of specified
                 packages.
    help         Displays a list of available conda commands and their help
                 strings.
    info         Display information about current conda install.
    init         Initialize conda for shell interaction. [Experimental]
    install      Installs a list of packages into a specified conda

仮想環境の確認

  • 現在作成されている仮想環境の一覧表示
C:\>conda info -e
# conda environments:
#
base                  *  C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3
  • 初期状態はbaseという名前の仮想環境が1つ存在していて、右側に表示されているpathの中にpython.exeがあります。

仮想環境へ入る

  • 仮想環境「base」に入ります。
C:\>conda activate base
(base) C:\>
  • プロンプトの先頭に(base)のように仮想環境名が表示されていればactiveになっている状態です。
  • この状態でpythonインタプリタを起動します。
(base) C:\>python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
  • python3.6.4と表示されています、これはbaseのpythonバージョンになります。baseはデフォルトの仮想環境なので基本的には使いません。

仮想環境の作成

  • 構文
conda create --name <仮想環境名> python=<バージョン>
  • python3.7環境を作成する
    • 途中でProceed ([y]/n)?と聞かれるのでyを押す
(base) C:\>conda create --name vpy3.7 python=3.7
Collecting package metadata (current_repodata.json): don
.
.
.
<省略>
.
.
.
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate vpy3.7
#
# To deactivate an active environment, use
#

  • 作成されたか確認
C:\>conda info -e
# conda environments:
#
base                  *  C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3
vpy3.7                   C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy3.7
  • vpy3.7に入ってpythonインタプリタを起動する
C:\>conda activate vpy3.7

(vpy3.7) C:\>python
Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
  • 無事にpython3.7環境が作成できました。
  • python2.7環境の作成は以下のようになります。
    • 環境作成時はどの仮想環境から実行しても問題ないです。
(vpy3.7) C:\>conda create --name vpy2.7 python=2.7
.
.
<省略>
・
・
(vpy3.7) C:\>conda info -e
# conda environments:
#
base                     C:\Users\xxxxxxx\AppData\Local\Continuum\miniconda3
vpy2.7                   C:\Users\xxxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy2.7
vpy3.7                *  C:\Users\xxxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy3.7

(vpy3.7) C:\>conda activate vpy2.7

(vpy2.7) C:\>python
Python 2.7.16 |Anaconda, Inc.| (default, Mar 14 2019, 15:42:17) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

仮想環境内でパッケージのインストール

  • 通常パッケージ管理システムでpipを利用することが多いですが、conda環境内ではconda installコマンドが推奨されています。
    • 私はconda installに対応していないパッケージはpip installで入れています。
  • 現在の仮想環境内でインストール済みパッケージ一覧
(vpy3.7) C:\>conda list
# packages in environment at C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy3.7:
#
# Name                    Version                   Build  Channel
ca-certificates           2019.8.28                     0
certifi                   2019.9.11                py37_0
openssl                   1.1.1d               he774522_0
pip                       19.2.3                   py37_0
python                    3.7.4                h5263a28_0
setuptools                41.2.0                   py37_0
sqlite                    3.29.0               he774522_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.16.27012          hf0eaf9b_0
wheel                     0.33.6                   py37_0
wincertstore              0.2                      py37_0
  • scipyを追加する
(vpy3.7) C:\>conda install scipy
Collecting package metadata (current_repodata.json): done
Solving environment: done
・
・
<省略>
・
・
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(vpy3.7) C:\>conda list
# packages in environment at C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy3.7:
#
# Name                    Version                   Build  Channel
blas                      1.0                         mkl
ca-certificates           2019.8.28                     0
certifi                   2019.9.11                py37_0
icc_rt                    2019.0.0             h0cc432a_1
intel-openmp              2019.4                      245
mkl                       2019.4                      245
mkl-service               2.3.0            py37hb782905_0
mkl_fft                   1.0.14           py37h14836fe_0
mkl_random                1.1.0            py37h675688f_0
numpy                     1.16.5           py37h19fb1c0_0
numpy-base                1.16.5           py37hc3f5095_0
openssl                   1.1.1d               he774522_0
pip                       19.2.3                   py37_0
python                    3.7.4                h5263a28_0
scipy                     1.3.1            py37h29ff71c_0
setuptools                41.2.0                   py37_0
six                       1.12.0                   py37_0
sqlite                    3.29.0               he774522_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.16.27012          hf0eaf9b_0
wheel                     0.33.6                   py37_0
wincertstore              0.2                      py37_0

切り替えなしで指定した仮想環境でpythonを実行する

  • 仮想環境を切り替えずにフルパスで実行することができます。
  • 例えばvpy2.7環境でhoge.pyを実行したい場合は以下のようになります。
C:\>conda info -e
# conda environments:
#
base                  *  C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3
vpy2.7                   C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy2.7
vpy3.7                   C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy3.7

C:\> C:\Users\xxxxxx\AppData\Local\Continuum\miniconda3\envs\vpy2.7\python.exe hoge.py