こんにちは。カルークです。
今回は、AnacondaでPython開発する際のいくつかのコマンドの挙動について、備忘録を書きます。(自分用)
実行環境
実行環境はこんな感じです。
- Ubuntu 18.04 LTS (VirtualBox利用)
- condanaのバージョン:4.8.2
前回、Ubuntu 18.04 LTS上にAnacondaをインストールしましたが、その状態になります。
condaコマンドのメモ
Anaconda上でPythonを使う際によく使うコマンドについて、備忘録をメモします。(上から順に実行しました)
condaバージョン確認
(base) caluke@caluke-VirtualBox:~$ conda -V
conda 4.8.2
pythonバージョン確認
(base) caluke@caluke-VirtualBox:~$ python -V
Python 3.7.6
python 3.7.6が入っています。
pipバージョン確認
(base) caluke@caluke-VirtualBox:~$ pip -V
pip 20.0.2 from /home/caluke/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
importパッケージの参照先確認
(base) caluke@caluke-VirtualBox:~$ python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import pprint
>>> pprint.pprint(sys.path)
['',
'/home/caluke/anaconda3/lib/python37.zip',
'/home/caluke/anaconda3/lib/python3.7',
'/home/caluke/anaconda3/lib/python3.7/lib-dynload',
'/home/caluke/anaconda3/lib/python3.7/site-packages']
base環境はpython3.7なので、3.7系のlibが参照されています。
import済パッケージ一覧の表示
(base) caluke@caluke-VirtualBox:~$ pip list
Package Version
---------------------------------- -------------------
alabaster 0.7.12
anaconda-client 1.7.2
anaconda-navigator 1.9.12
anaconda-project 0.8.3
argh 0.26.2
asn1crypto 1.3.0
astroid 2.3.3
astropy 4.0
atomicwrites 1.3.0
attrs 19.3.0
autopep8 1.4.4
Babel 2.8.0
backcall 0.1.0
backports.functools-lru-cache 1.6.1
backports.shutil-get-terminal-size 1.0.0
backports.tempfile 1.0
backports.weakref 1.0.post1
(長いので省略)
始めから入っているモジュール群です。
ちなみにconda環境だと、pip installではなくconda installを使う事があります。(conda installを使わないと環境が壊れることもあるそうで)
condaから出る
(base) caluke@caluke-VirtualBox:~$ conda deactivate
caluke@caluke-VirtualBox:~$
「(base)」が消えます。
condaに入る
caluke@caluke-VirtualBox:~$ conda activate base
(base) caluke@caluke-VirtualBox:~$
再びcondaに入ってみます。ここでは、デフォルトの(base)環境に入ります。「(base)」が復活しています。
condaの仮想環境一覧を見る
caluke@caluke-VirtualBox:~$ conda info -e
# conda environments:
#
base * /home/caluke/anaconda3
まだ一度も作成していないので、デフォルトのbaseしか表示されていません。
condaの仮想環境を作る
myvenvという仮想環境を作ります。pythonのバージョンは特に指定しないでみます。
(base) caluke@caluke-VirtualBox:~$ conda create -n myvenv
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.8.2
latest version: 4.8.3
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /home/caluke/anaconda3/envs/myvenv
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate myvenv
#
# To deactivate an active environment, use
#
# $ conda deactivate
途中、Proceed ([y]/n)?と聞かれるので、yを押してEnterします。
Executing transaction: doneが表示されたら、構築完了です。
作成した仮想環境に入る
(base) caluke@caluke-VirtualBox:~$ conda activate myvenv
(myvenv) caluke@caluke-VirtualBox:~$
冒頭にある(base)から(myvenv)に切り替わっています。
作成した仮想環境内でのPythonのバージョン確認
(myvenv) caluke@caluke-VirtualBox:~$ python -V
Command 'python' not found, but can be installed with:
sudo apt install python3
sudo apt install python
sudo apt install python-minimal
You also have python3 installed, you can run 'python3' instead.
python3と入力しないとpythonが使えないのか。(base環境では使えた)
(myvenv) caluke@caluke-VirtualBox:~$ python3 -V
Python 3.6.9
python3で実行できる。仮想環境構築時にpythonバージョン指定しないと、バージョンは3.6になる。(baseでは3.7だった)
condaの仮想環境を作る(pythonバージョンを指定してみる)
今度はpythonバージョンを指定して、myvenv_py35という仮想環境を作ってみる。(やや古いが3.5を構築)
(myvenv) caluke@caluke-VirtualBox:~$ conda create -n myvenv_py35 python=3.5
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.8.2
latest version: 4.8.3
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /home/caluke/anaconda3/envs/myvenv_py35
added / updated specs:
- python=3.5
The following packages will be downloaded:
package | build
---------------------------|-----------------
certifi-2018.8.24 | py35_1 137 KB
ncurses-6.2 | he6710b0_1 817 KB
openssl-1.0.2u | h7b6447c_0 2.2 MB
pip-10.0.1 | py35_0 1.6 MB
python-3.5.6 | hc3d631a_0 24.9 MB
setuptools-40.2.0 | py35_0 490 KB
sqlite-3.31.1 | h62c20be_1 1.1 MB
wheel-0.31.1 | py35_0 66 KB
xz-5.2.5 | h7b6447c_0 341 KB
------------------------------------------------------------
Total: 31.5 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
ca-certificates pkgs/main/linux-64::ca-certificates-2020.1.1-0
certifi pkgs/main/linux-64::certifi-2018.8.24-py35_1
libedit pkgs/main/linux-64::libedit-3.1.20181209-hc058e9b_0
libffi pkgs/main/linux-64::libffi-3.2.1-hd88cf55_4
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.0.2u-h7b6447c_0
pip pkgs/main/linux-64::pip-10.0.1-py35_0
python pkgs/main/linux-64::python-3.5.6-hc3d631a_0
readline pkgs/main/linux-64::readline-7.0-h7b6447c_5
setuptools pkgs/main/linux-64::setuptools-40.2.0-py35_0
sqlite pkgs/main/linux-64::sqlite-3.31.1-h62c20be_1
tk pkgs/main/linux-64::tk-8.6.8-hbc83047_0
wheel pkgs/main/linux-64::wheel-0.31.1-py35_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Proceed ([y]/n)? y
Downloading and Extracting Packages
xz-5.2.5 | 341 KB | ################################################################################################################################################################# | 100%
setuptools-40.2.0 | 490 KB | ################################################################################################################################################################# | 100%
sqlite-3.31.1 | 1.1 MB | ################################################################################################################################################################# | 100%
ncurses-6.2 | 817 KB | ################################################################################################################################################################# | 100%
python-3.5.6 | 24.9 MB | ################################################################################################################################################################# | 100%
certifi-2018.8.24 | 137 KB | ################################################################################################################################################################# | 100%
wheel-0.31.1 | 66 KB | ################################################################################################################################################################# | 100%
pip-10.0.1 | 1.6 MB | ################################################################################################################################################################# | 100%
openssl-1.0.2u | 2.2 MB | ################################################################################################################################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate myvenv_py35
#
# To deactivate an active environment, use
#
# $ conda deactivate
(myvenv) caluke@caluke-VirtualBox:~$ conda activate myvenv_py35
(myvenv_py35) caluke@caluke-VirtualBox:~$
バージョン指定しない場合と異なり、色々とパッケージがダウンロードされている。
再びバージョン確認。
(myvenv_py35) caluke@caluke-VirtualBox:~$ python -V
Python 3.5.6 :: Anaconda, Inc.
3.5になっているのが確認できる。また、先程はpython3と明示的に入力していたのがpythonだけでいけた。一応、python3と入力しても一緒。
(myvenv_py35) caluke@caluke-VirtualBox:~$ python3 -V
Python 3.5.6 :: Anaconda, Inc.
pipのinstall済パッケージを確認
(myvenv_py35) caluke@caluke-VirtualBox:~$ pip list
Package Version
---------- ---------
certifi 2018.8.24
pip 10.0.1
setuptools 40.2.0
wheel 0.31.1
You are using pip version 10.0.1, however version 20.2b1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
base環境ではたくさんあったのに、かなり少なくなっている。condaのinstall済パッケージも同様。
(myvenv_py35) caluke@caluke-VirtualBox:~$ conda list
# packages in environment at /home/caluke/anaconda3/envs/myvenv_py35:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
ca-certificates 2020.1.1 0
certifi 2018.8.24 py35_1
libedit 3.1.20181209 hc058e9b_0
libffi 3.2.1 hd88cf55_4
libgcc-ng 9.1.0 hdf63c60_0
libstdcxx-ng 9.1.0 hdf63c60_0
ncurses 6.2 he6710b0_1
openssl 1.0.2u h7b6447c_0
pip 10.0.1 py35_0
python 3.5.6 hc3d631a_0
readline 7.0 h7b6447c_5
setuptools 40.2.0 py35_0
sqlite 3.31.1 h62c20be_1
tk 8.6.8 hbc83047_0
wheel 0.31.1 py35_0
xz 5.2.5 h7b6447c_0
zlib 1.2.11 h7b6447c_3
conda create直後は基本的にまっさらな環境なので、下記でライブラリ群を引き継ぐことができる。
conda create -n <環境名> --clone <もとにしたい環境>
まとめ
Anacondaを使う時のコマンドを色々と入力してみて、挙動を確認しました。