見出し画像

condaの簡単な使い方

前の記事でAnacondaでPython構築をしたので実際に使ってみる。

1.condaとは

まずconda(コンダ)って何?から始めると

公式情報( https://conda.io/docs/ )では

Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN
Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.

まぁ英語なのでわからないですが、こう言う事らしい。

Python、R、Ruby、Lua、Scala、Java、JavaScript、C / C ++、FORTRANなど、あらゆる言語のパッケージ、依存関係、および環境管理
Condaは、Windows、macOS、およびLinux上で動作するオープンソースのパッケージ管理システムおよび環境管理システムです。 Condaはパッケージとその依存関係を素早くインストール、実行、そして更新します。 Condaはあなたのローカルコンピュータの環境間で簡単に作成、保存、ロードそして切り替えを行います。これはPythonプログラム用に作成されましたが、あらゆる言語のソフトウェアをパッケージ化して配布することができます。(Google翻訳)

一言でいえば、こうかなと思います。

Python用に作られたパッケージ管理システムと環境マネジメントシステム

2.作業環境の確認

condaを使う前に、現状環境にAnacondaでPython環境がある前提となります。前の章で環境をご用意ください。

OS環境は、Windows10で、Anacondaがインストールされている状態で、Pythonは3.7x が導入されている想定です。

3.インストール済みパッケージ一覧を表示

コマンドプロンプト「cmd」を立ち上げて下記「conda list」コマンドをたたいてみよう。condaのインストールパッケージ名が一覧で表示されます。

C:\Users\>conda list

下記のようなずらっと長いリストが表示されるはずです。(数秒かかる)

画像ではわかりにくいのでテキストで書くとこう(私の環境では)

C:\Users\>conda list
# packages in environment at C:\Anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0
alabaster                 0.7.12                   py37_0
anaconda                  2018.12                  py37_0
anaconda-client           1.7.2                    py37_0
anaconda-navigator        1.9.6                    py37_0
anaconda-project          0.8.2                    py37_0
asn1crypto                0.24.0                   py37_0
astroid                   2.1.0                    py37_0
astropy                   3.1              py37he774522_0
atomicwrites              1.2.1                    py37_0
attrs                     18.2.0           py37h28b3542_0
babel                     2.6.0                    py37_0
backcall                  0.1.0                    py37_0
backports                 1.0                      py37_1
backports.os              0.1.1                    py37_0
backports.shutil_get_terminal_size 1.0.0                    py37_2
beautifulsoup4            4.6.3                    py37_0
bitarray                  0.8.3            py37hfa6e2cd_0
bkcharts                  0.2                      py37_0
blas                      1.0                         mkl
blaze                     0.11.3                   py37_0
bleach                    3.0.2                    py37_0
blosc                     1.14.4               he51fdeb_0
bokeh                     1.0.2                    py37_0
boto                      2.49.0                   py37_0
bottleneck                1.2.1            py37h452e1ab_1
bzip2                     1.0.6                hfa6e2cd_5
ca-certificates           2018.03.07                    0
certifi                   2018.11.29               py37_0
cffi                      1.11.5           py37h74b6da3_1
chardet                   3.0.4                    py37_1
click                     7.0                      py37_0
cloudpickle               0.6.1                    py37_0
clyent                    1.2.2                    py37_1
colorama                  0.4.1                    py37_0
comtypes                  1.1.7                    py37_0
conda                     4.5.12                   py37_0
conda-build               3.17.6                   py37_0
conda-env                 2.6.0                         1
conda-verify              3.1.1                    py37_0
console_shortcut          0.1.1                         3
contextlib2               0.5.5                    py37_0
cryptography              2.4.2            py37h7a1dbc1_0
curl                      7.63.0            h2a8f88b_1000
cycler                    0.10.0                   py37_0
cython                    0.29.2           py37ha925a31_0
cytoolz                   0.9.0.1          py37hfa6e2cd_1
dask                      1.0.0                    py37_0
dask-core                 1.0.0                    py37_0
datashape                 0.5.4                    py37_1
decorator                 4.3.0                    py37_0
defusedxml                0.5.0                    py37_1
distributed               1.25.1                   py37_0
docutils                  0.14                     py37_0
entrypoints               0.2.3                    py37_2
et_xmlfile                1.0.1                    py37_0
fastcache                 1.0.2            py37hfa6e2cd_2
filelock                  3.0.10                   py37_0
flask                     1.0.2                    py37_1
flask-cors                3.0.7                    py37_0
freetype                  2.9.1                ha9979f8_1
future                    0.17.1                   py37_0
get_terminal_size         1.0.0                h38e98db_0
gevent                    1.3.7            py37he774522_1
glob2                     0.6                      py37_1
greenlet                  0.4.15           py37hfa6e2cd_0
h5py                      2.8.0            py37h3bdd7fb_2
hdf5                      1.10.2               hac2f561_1
heapdict                  1.0.0                    py37_2
html5lib                  1.0.1                    py37_0
icc_rt                    2019.0.0             h0cc432a_1
icu                       58.2                 ha66f8fd_1
idna                      2.8                      py37_0
imageio                   2.4.1                    py37_0
imagesize                 1.1.0                    py37_0
importlib_metadata        0.6                      py37_0
intel-openmp              2019.1                      144
ipykernel                 5.1.0            py37h39e3cac_0
ipython                   7.2.0            py37h39e3cac_0
ipython_genutils          0.2.0                    py37_0
ipywidgets                7.4.2                    py37_0
isort                     4.3.4                    py37_0
itsdangerous              1.1.0                    py37_0
jdcal                     1.4                      py37_0
jedi                      0.13.2                   py37_0
jinja2                    2.10                     py37_0
jpeg                      9b                   hb83a4c4_2
jsonschema                2.6.0                    py37_0
jupyter                   1.0.0                    py37_7
jupyter_client            5.2.4                    py37_0
jupyter_console           6.0.0                    py37_0
jupyter_core              4.4.0                    py37_0
jupyterlab                0.35.3                   py37_0
jupyterlab_server         0.2.0                    py37_0
keyring                   17.0.0                   py37_0
kiwisolver                1.0.1            py37h6538335_0
krb5                      1.16.1               hc04afaa_7
lazy-object-proxy         1.3.1            py37hfa6e2cd_2
libarchive                3.3.3                h0643e63_5
libcurl                   7.63.0            h2a8f88b_1000
libiconv                  1.15                 h1df5818_7
libpng                    1.6.35               h2a8f88b_0
libsodium                 1.0.16               h9d3ae62_0
libssh2                   1.8.0                h7a1dbc1_4
libtiff                   4.0.9                h36446d0_2
libxml2                   2.9.8                hadb2253_1
libxslt                   1.1.32               hf6f1972_0
llvmlite                  0.26.0           py37ha925a31_0
locket                    0.2.0                    py37_1
lxml                      4.2.5            py37hef2cd61_0
lz4-c                     1.8.1.2              h2fa13f4_0
lzo                       2.10                 h6df0209_2
m2w64-gcc-libgfortran     5.3.0                         6
m2w64-gcc-libs            5.3.0                         7
m2w64-gcc-libs-core       5.3.0                         7
m2w64-gmp                 6.1.0                         2
m2w64-libwinpthread-git   5.0.0.4634.697f757               2
markupsafe                1.1.0            py37he774522_0
matplotlib                3.0.2            py37hc8f65d3_0
mccabe                    0.6.1                    py37_1
menuinst                  1.4.14           py37hfa6e2cd_0
mistune                   0.8.4            py37he774522_0
mkl                       2019.1                      144
mkl-service               1.1.2            py37hb782905_5
mkl_fft                   1.0.6            py37h6288b17_0
mkl_random                1.0.2            py37h343c172_0
more-itertools            4.3.0                    py37_0
mpmath                    1.1.0                    py37_0
msgpack-python            0.5.6            py37he980bc4_1
msys2-conda-epoch         20160418                      1
multipledispatch          0.6.0                    py37_0
navigator-updater         0.2.1                    py37_0
nbconvert                 5.4.0                    py37_1
nbformat                  4.4.0                    py37_0
networkx                  2.2                      py37_1
nltk                      3.4                      py37_1
nose                      1.3.7                    py37_2
notebook                  5.7.4                    py37_0
numba                     0.41.0           py37hf9181ef_0
numexpr                   2.6.8            py37hdce8814_0
numpy                     1.15.4           py37h19fb1c0_0
numpy-base                1.15.4           py37hc3f5095_0
numpydoc                  0.8.0                    py37_0
odo                       0.5.1                    py37_0
olefile                   0.46                     py37_0
openpyxl                  2.5.12                   py37_0
openssl                   1.1.1a               he774522_0
packaging                 18.0                     py37_0
pandas                    0.23.4           py37h830ac7b_0
pandoc                    1.19.2.1             hb2460c7_1
pandocfilters             1.4.2                    py37_1
parso                     0.3.1                    py37_0
partd                     0.3.9                    py37_0
path.py                   11.5.0                   py37_0
pathlib2                  2.3.3                    py37_0
patsy                     0.5.1                    py37_0
pep8                      1.7.1                    py37_0
pickleshare               0.7.5                    py37_0
pillow                    5.3.0            py37hdc69c19_0
pip                       18.1                     py37_0
pkginfo                   1.4.2                    py37_1
pluggy                    0.8.0                    py37_0
ply                       3.11                     py37_0
prometheus_client         0.5.0                    py37_0
prompt_toolkit            2.0.7                    py37_0
psutil                    5.4.8            py37he774522_0
py                        1.7.0                    py37_0
pycodestyle               2.4.0                    py37_0
pycosat                   0.6.3            py37hfa6e2cd_0
pycparser                 2.19                     py37_0
pycrypto                  2.6.1            py37hfa6e2cd_9
pycurl                    7.43.0.2         py37h7a1dbc1_0
pyflakes                  2.0.0                    py37_0
pygments                  2.3.1                    py37_0
pylint                    2.2.2                    py37_0
pyodbc                    4.0.25           py37ha925a31_0
pyopenssl                 18.0.0                   py37_0
pyparsing                 2.3.0                    py37_0
pyqt                      5.9.2            py37h6538335_2
pysocks                   1.6.8                    py37_0
pytables                  3.4.4            py37he6f6034_0
pytest                    4.0.2                    py37_0
pytest-arraydiff          0.3              py37h39e3cac_0
pytest-astropy            0.5.0                    py37_0
pytest-doctestplus        0.2.0                    py37_0
pytest-openfiles          0.3.1                    py37_0
pytest-remotedata         0.3.1                    py37_0
python                    3.7.1                h8c8aaf0_6
python-dateutil           2.7.5                    py37_0
python-libarchive-c       2.8                      py37_6
pytz                      2018.7                   py37_0
pywavelets                1.0.1            py37h8c2d366_0
pywin32                   223              py37hfa6e2cd_1
pywinpty                  0.5.5                 py37_1000
pyyaml                    3.13             py37hfa6e2cd_0
pyzmq                     17.1.2           py37hfa6e2cd_0
qt                        5.9.7            vc14h73c81de_0  [vc14]
qtawesome                 0.5.3                    py37_0
qtconsole                 4.4.3                    py37_0
qtpy                      1.5.2                    py37_0
requests                  2.21.0                   py37_0
rope                      0.11.0                   py37_0
ruamel_yaml               0.15.46          py37hfa6e2cd_0
scikit-image              0.14.1           py37ha925a31_0
scikit-learn              0.20.1           py37h343c172_0
scipy                     1.1.0            py37h29ff71c_2
seaborn                   0.9.0                    py37_0
send2trash                1.5.0                    py37_0
setuptools                40.6.3                   py37_0
simplegeneric             0.8.1                    py37_2
singledispatch            3.4.0.3                  py37_0
sip                       4.19.8           py37h6538335_0
six                       1.12.0                   py37_0
snappy                    1.1.7                h777316e_3
snowballstemmer           1.2.1                    py37_0
sortedcollections         1.0.1                    py37_0
sortedcontainers          2.1.0                    py37_0
sphinx                    1.8.2                    py37_0
sphinxcontrib             1.0                      py37_1
sphinxcontrib-websupport  1.1.0                    py37_1
spyder                    3.3.2                    py37_0
spyder-kernels            0.3.0                    py37_0
sqlalchemy                1.2.15           py37he774522_0
sqlite                    3.26.0               he774522_0
statsmodels               0.9.0            py37h452e1ab_0
sympy                     1.3                      py37_0
tblib                     1.3.2                    py37_0
terminado                 0.8.1                    py37_1
testpath                  0.4.2                    py37_0
tk                        8.6.8                hfa6e2cd_0
toolz                     0.9.0                    py37_0
tornado                   5.1.1            py37hfa6e2cd_0
tqdm                      4.28.1           py37h28b3542_0
traitlets                 4.3.2                    py37_0
unicodecsv                0.14.1                   py37_0
urllib3                   1.24.1                   py37_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.15.26706          h3a45250_0
wcwidth                   0.1.7                    py37_0
webencodings              0.5.1                    py37_1
werkzeug                  0.14.1                   py37_0
wheel                     0.32.3                   py37_0
widgetsnbextension        3.4.2                    py37_0
win_inet_pton             1.0.1                    py37_1
win_unicode_console       0.5                      py37_0
wincertstore              0.2                      py37_0
winpty                    0.4.3                         4
wrapt                     1.10.11          py37hfa6e2cd_2
xlrd                      1.2.0                    py37_0
xlsxwriter                1.1.2                    py37_0
xlwings                   0.15.1                   py37_0
xlwt                      1.3.0                    py37_0
xz                        5.2.4                h2fa13f4_4
yaml                      0.1.7                hc54c509_2
zeromq                    4.2.5                he025d50_1
zict                      0.1.3                    py37_0
zlib                      1.2.11               h62dcd97_3
zstd                      1.3.7                h508b16e_0

すげー長いですw

最初の「_ipyw_jlab_nb_ext_conf 」から、最後の「zstd」まで(アルファベット順)、258のパッケージ名が表示されました。

4.パッケージを検索する

コマンドに「conda search django」と入れてたたいてみてください。
検索くるくるが一瞬表示されてこれまたずらーっと出てきているはずです。(以下は中略してます)

C:\Users\>conda search django
Loading channels: done
# Name                  Version           Build  Channel
django                      1.7          py27_1  pkgs/free
django                      1.7          py33_1  pkgs/free
django                      1.7          py34_1  pkgs/free
django                    1.7.1          py27_0  pkgs/free
django                    1.7.1          py33_0  pkgs/free
django                    1.7.1          py34_0  pkgs/free
# ~中略~
django                    2.1.1          py35_0  pkgs/main
django                    2.1.1          py36_0  pkgs/main
django                    2.1.1          py37_0  pkgs/main
django                    2.1.2          py36_0  pkgs/main
django                    2.1.2          py37_0  pkgs/main
django                    2.1.4          py36_0  pkgs/main
django                    2.1.4          py37_0  pkgs/main

5.パッケージをインストールする

では沢山用意されたパッケージの一つを実際にインストールしてみましょう。上記で検索して見つかったパッケージ「django」をインストールしてみます。
コマンドに「conda install django」と入れてたたいてみてください。

Proceed([y]/n)?
# 進みますか?

何かヒアリングしてきたので迷わず[y](はい)でエンターしてください。
「Proceed?」は、「進みますか?」と聞いています。

C:\Users\>conda install django
Solving environment: done

## Package Plan ##

  environment location: C:\Anaconda3

  added / updated specs:
    - django

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    django-2.1.4               |           py37_0         4.4 MB

The following NEW packages will be INSTALLED:

    django: 2.1.4-py37_0

Proceed ([y]/n)? y

Downloading and Extracting Packages
django-2.1.4         | 4.4 MB    | ###################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

最初のインストールのコマンドからの流れは上記の通り
[y](はい)を押せば、#で表現したプログレスバーが伸びて100%で完了します。数秒で終わると思います。

6.パッケージをアップグレードする

インストールしたばかりの環境の場合は不要ですが、後々バージョンが古くなったとか新しい環境にアップグレードしたいときに利用します。

コマンドに「conda install django」と入れてたたいてください。
くるくる始

C:\Users\>C:\Users\>conda upgrade django
Solving environment: done

# All requested packages already installed.
# 要求されたすべてのパッケージはすでにインストールされています。

ですよね
すでに最新状態なので「already installed」となりますよね

7.パッケージを削除する

このページを読んでいる人には関係ないとは思うが念のため、不要になったパッケージを削除する場合「conda remove django」のように指定します。

C:\Users\>conda remove django
Solving environment: done

## Package Plan ##

  environment location: C:\Anaconda3

  removed specs:
    - django

The following packages will be REMOVED:

    django: 2.1.4-py37_0

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

これで削除できましたが、元に戻す場合はもう一度
「5.パッケージをインストールする」で行ったインストールをし直してください。つまりこのremoveとはアンインストールの事ですね。



Webのお仕事、元phpプログラマ、今主にWebディレクタ、たまにエンジニア、UXディレクタ、LTのネタ探ししてます。