🐍

【初心者】Anacondaを使ったPython環境構築-Windows

2021/05/28に公開

Windows端末にAnacondaを使ったPython環境を構築する機会があったので、備忘録も兼ね記事にしました。

環境

  • Windows 10 Home

Anacondaインストール

[1]. Anaconda(https://docs.conda.io/en/latest/miniconda.html)へアクセス

[2]. 画面中盤の[Anaconda Installers]より、64-Bit Graphical Installerをダウンロードします。

[3]. ダウンロードした次のファイルを起動します。
Anaconda3-2021.05-Windows-x86_64

[4]. Nextを押します。

[5]. I Agreeを押します。

[6]. Just Meを選択し、Nextを押します。

[7]. インストール先を指定し、Nextを押します。

[8]. Register Anaconda as my default Python 3.6を指定し、Installを押します。

Add Anaconda to my PATH environment variable

AnacondaでインストールされたPythonのパスがPATH環境変数に追加され、コマンドプロンプトなどでAnacondaのPythonが実行できるようになります。

Register Anaconda as my default Python 3.6

Pythonを利用するプログラムがAnacondaでインストールしたPythonを利用するようになります。

[9]. Nextを押します。

[10]. Nextを押します。

[11]. デフォルトのチェックを全て外し、Finishを押します。

こちらのチェックは、下に貼る使用方法などのWebページを開くだけなので外しておいて問題ありません。
https://docs.anaconda.com/anaconda/navigator/tutorials/
https://docs.anaconda.com/anaconda/user-guide/getting-started/

[12]. スタートメニューからanaconda promptを起動します。

[13]. python --versionを実行し画像のようにバージョンが表示されれば成功です。

Anaconda仮想環境の構築

開発環境はプロジェクトによって異なります。
異なるプロジェクトの環境を、1つの環境下で管理・構築してしまうと、利用しないライブラリなどが増え続け、メンテナンス性の低い使い勝手の悪い環境下でプロジェクトを進めることとなってしまいます。

仮想環境を使うことで、プロジェクト単位の独立した環境を構築することができ、ストレスの低い軽量でメンテナンス性の優れた環境を構築することができます。

作成までの流れ

  1. すでに存在する仮想環境がないか確認
  2. 仮想環境の作成
  3. 作成した仮想環境の確認
  4. 仮想環境の起動
  5. 仮想環境へライブラリを追加

すでに存在する仮想環境がないか確認

Anaconda Promptを起動し、次のコマンドを実行し、Anacondaにある全ての環境を一覧します。

コマンド
conda info -e
実行結果
(base) C:\Users\makio>conda info -e
# conda environments:
#
base                  *  C:\Users\makio\anaconda3

実行結果を見ると現在は、baseという環境のみが存在しています。
アスタリスク(*)のついている環境が、今いる環境になります。

仮想環境の作成

仮想環境は、次のコマンドで作成することができます。

コマンド
conda create -n 仮想環境の名前

しかし、このコマンドだとPythonすら入っていない真っ白な環境ができてしまうため、次の「仮想環境の作成」と「Pythonの導入」を同時に行うコマンドを使うのが主流です。(今回はこちらを使用します。)
なお、今回はflaskという名前の仮想環境を作成します。

コマンド
conda create -n flask python

このコマンドの場合、最新バージョンのPythonが導入されます。
Pythonのバージョンを指定したい場合は'python'と記載された部分を'python=3.5'のようにバージョン情報を追記してください。

作成した仮想環境の確認

作成が完了したら、次のとおりconda info -eコマンドで仮想環境が存在することを確認します。

実行結果
(base) C:\Users\makio>conda info -e
# conda environments:
#
base                  *  C:\Users\makio\anaconda3
flask                    C:\Users\makio\anaconda3\envs\flask

この結果からflaskという名前の仮想環境が新たに作成されたことがわかります。

仮想環境の起動

作成しただけでは仮想環境を使うことができません。
次のコマンドで環境を起動します。

コマンド
conda activate 仮想環境の名前
実行結果
(base) C:\Users\makio>conda activate flask

(flask) C:\Users\makio> 

( )で囲まれた環境名がコマンド実行のタイミングでbaseからflaskに変更されています。
これで、仮想環境の起動・移動が完了したことになります。
一応conda info -eで確認します。

実行結果
(flask) C:\Users\makio>conda info -e
# conda environments:
#
base                     C:\Users\makio\anaconda3
flask                 *  C:\Users\makio\anaconda3\envs\flask

*の位置がflaskに変更されていることがわかります。

仮想環境の停止

起動中(activate)の環境を停止(deactivate)する場合は次のコマンドを使用します。

conda deactivate
(flask) C:\Users\makio>conda deactivate

(base) C:\Users\makio>

実行結果の通り(flask)(base)に切り替わっていることがわかります。

仮想環境の削除

仮想環境を削除する場合は次のコマンドを使用します。

コマンド
conda remove -n 仮想環境の名前 --all

削除が成功したことを確認するためconda info -eコマンドで環境の状態を確認します。

実行結果
(base) C:\Users\makio\anaconda3>conda info -e
# conda environments:
#
base                  *  C:\Users\makio\anaconda3

実行結果の通りroot環境のみが表示され、先ほどまであったflaskの環境が存在しないことがわかります。
これで削除は成功です。

仮想環境の再作成

削除してしまった環境を再作成します。

実行結果
(base) C:\Users\makio\anaconda3>conda create -n flask
WARNING: A directory already exists at the target location 'C:\Users\makio\anaconda3\envs\flask'
but it is not a conda environment.
Continue creating environment (y/[n])? n


CondaSystemExit: Exiting.


(base) C:\Users\makio\anaconda3>conda create -n flask python
WARNING: A directory already exists at the target location 'C:\Users\makio\anaconda3\envs\flask'
but it is not a conda environment.
Continue creating environment (y/[n])? 

すると、この通りWARNINGが出力されます。
これは「すでに'C:\Users\makio\anaconda3\envs'のパス上にflaskという名前のフォルダが存在しているので作れない」という意味になります。
先ほど実行したconda remove -n 仮想環境の名前 --allでは、作成した仮想環境のフォルダまで削除できないので、こちらは次のとおり手動で削除します。

実行結果
(base) C:\Users\makio\anaconda3>cd C:\Users\makio\anaconda3\envs
(base) C:\Users\makio\anaconda3\envs>rd flask /s
flask、よろしいですか (Y/N)? Y

正常に削除が完了したら再度つぎのコマンドを実行します。

コマンド
conda create -n flask python

今度は問題なくコマンドが通るはずです。

仮想環境の名前を変更する

今回は勤怠管理のアプリケーションを作成しようとおもうので、仮想環境の名前をflaskattendanceに変更します。
仮想環境の名前を変える流れは、次のとおりです。

  1. flaskの仮想環境をattendanceという名前でコピー
  2. コピー元であるflaskの環境を削除
  3. コピー元であるflaskのフォルダを削除
  4. attendanceを起動
コマンド
conda create -n 新しい仮想環境名 --clone 古い仮想環境名
実行結果
conda create -n attendance --clone flask

コマンドを実行したらconda info -eで環境の状態を確認します。

実行結果
(flask) C:\Users\makio>conda info -e
# conda environments:
#
base                     C:\Users\makio\anaconda3
attendance               C:\Users\makio\anaconda3\envs\attendance
flask                 *  C:\Users\makio\anaconda3\envs\flask

flask, attendanceの二つの環境がそれぞれ存在します。
古い名前の環境であるflaskを削除するため次の順でコマンドを実行します。

コマンド
(flask) C:\Users\makio>conda deactivate
(base) C:\Users\makio>conda remove -n flask --all
(base) C:\Users\makio>cd C:\Users\makio\anaconda3\envs
(base) C:\Users\makio\anaconda3\envs>rd flask /s
(base) C:\Users\makio\anaconda3\envs>cd ../../
(base) C:\Users\makio>conda activate attendance
(attendance) C:\Users\makio> 

これで、仮想環境の名前変更と、新しい仮想環境の起動までが完了しました。

ライブラリをインストールする

作成した環境attendanceに新たにライブラリを追加します。
今回は'flask'というライブラリをインストールすることにします。

インストール済ライブラリの確認

インストールをはじめる前に、インストールしようとしているライブラリがすでに存在していないか次のコマンドで確認します。

コマンド
conda list -n 仮想環境名
実行結果
(attendance) C:\Users\makio>conda list -n attendance
# packages in environment at C:\Users\makio\anaconda3\envs\attendance:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.4.13            haa95532_1
certifi                   2020.12.5        py39haa95532_0
openssl                   1.1.1k               h2bbff1b_0
pip                       21.1.1           py39haa95532_0
python                    3.9.5                h6244533_3
setuptools                52.0.0           py39haa95532_0
sqlite                    3.35.4               h2bbff1b_0
tzdata                    2020f                h52ac0ba_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wheel                     0.36.2             pyhd3eb1b0_0
wincertstore              0.2              py39h2bbff1b_0

今回インストールするflaskが一覧上に存在しないことから、現状ではインストールされていないことが確認できました。

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

次のコマンドでflaskをインストールします。

コマンド
conda install パッケージ名 -n 仮想環境名
実行結果
(attendance) C:\Users\makio>conda list -n attendance
# packages in environment at C:\Users\makio\anaconda3\envs\attendance:
#
# Name                    Version                   Build  Channel
ca-certificates           2021.4.13            haa95532_1
certifi                   2020.12.5        py39haa95532_0
openssl                   1.1.1k               h2bbff1b_0
pip                       21.1.1           py39haa95532_0
python                    3.9.5                h6244533_3
setuptools                52.0.0           py39haa95532_0
sqlite                    3.35.4               h2bbff1b_0
tzdata                    2020f                h52ac0ba_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wheel                     0.36.2             pyhd3eb1b0_0
wincertstore              0.2              py39h2bbff1b_0

(attendance) C:\Users\makio>conda install flask -n attendance
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\makio\anaconda3\envs\attendance

  added / updated specs:
    - flask


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    click-8.0.1                |     pyhd3eb1b0_0          79 KB
    importlib-metadata-3.10.0  |   py39haa95532_0          34 KB
    itsdangerous-2.0.1         |     pyhd3eb1b0_0          18 KB
    jinja2-3.0.0               |     pyhd3eb1b0_0         106 KB
    markupsafe-2.0.1           |   py39h2bbff1b_0          24 KB
    ------------------------------------------------------------
                                           Total:         261 KB

The following NEW packages will be INSTALLED:

  click              pkgs/main/noarch::click-8.0.1-pyhd3eb1b0_0
  flask              pkgs/main/noarch::flask-1.1.2-pyhd3eb1b0_0
  importlib-metadata pkgs/main/win-64::importlib-metadata-3.10.0-py39haa95532_0
  itsdangerous       pkgs/main/noarch::itsdangerous-2.0.1-pyhd3eb1b0_0
  jinja2             pkgs/main/noarch::jinja2-3.0.0-pyhd3eb1b0_0
  markupsafe         pkgs/main/win-64::markupsafe-2.0.1-py39h2bbff1b_0
  werkzeug           pkgs/main/noarch::werkzeug-1.0.1-pyhd3eb1b0_0
  zipp               pkgs/main/noarch::zipp-3.4.1-pyhd3eb1b0_0

Discussion