異なるpythonのバージョンやソフトウェアライブラリを個別に管理できる環境を構築するため、仮想環境を作ってみた。やったことを記録しておかないと忘れるため、またqiitaに投稿します。
###Anaconda仮想環境を作成
まず、createコマンドでanacondaの仮想環境を作ります。
nameオプション.....環境名
python.....pythonのバージョンを指定
base) C:\Users\${your_username}>conda create --name anaconda_virtual_env python=3.6.7
すると、 certifi ,pip などのパッケージインストールから始まる。
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
## Package Plan ##
environment location: C:\Users\cqe01\.conda\envs\anaconda_virtual_env
added / updated specs:
- python=3.8.7
The following NEW packages will be INSTALLED:
certifi pkgs/main/win-64::certifi-2020.12.5-py36haa95532_0
pip pkgs/main/win-64::pip-21.1.1-py36haa95532_0
python pkgs/main/win-64::python-3.6.7-h9f7ef89_2
setuptools pkgs/main/win-64::setuptools-52.0.0-py36haa95532_0
sqlite pkgs/main/win-64::sqlite-3.35.4-h2bbff1b_0
vc pkgs/main/win-64::vc-14.2-h21ff451_1
vs2015_runtime pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
wincertstore pkgs/main/win-64::wincertstore-0.2-py36h7fe50ca_0
Proceed ([y]/n)? y
###Anaconda仮想環境を起動する
仮想環境を起動する。Anaconda Promptの先頭が仮想環境名(次の例ではanaconda_virtual_env)に代わり、いま操作しているのがどの環境かわかる。
C:\Users\${your_username}>conda activate anaconda_virtual_env
(anaconda_virtual_env) C:\Users\${your_username}>
###Anaconda仮想環境にライブラリをインストールする
続いてライブラリを次々にインストールしていく。
仮想環境は、
C:\Users${your_username}.conda\envs\anaconda_virtual_env
に保存されたようです。
(anaconda_virtual_env) C:\Users\${your_username}>conda install pandas=0.22.0
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install numpy=1.14.6
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install matplotlib=2.1.2
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c anaconda seaborn
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c conda-forge scikit-learn
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c conda-forge xgboost
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c conda-forge lightgbm
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c conda-forge pandas_profiling
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c conda-forge tqdm
(中略)
(anaconda_virtual_env) C:\Users\${your_username}>conda install -c conda-forge sqlalchamey
(中略)
最後にjupyterをインストールする。
(anaconda_virtual_env) C:\Users\${your_username}>conda install jupyter
jupyter入れると、パッケージがたくさんインストールさされる。
レスポンスは、こんな感じ。
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\Users\${your_username}\.conda\envs\pandas_book
added / updated specs:
- jupyter
The following packages will be downloaded:
package | build
---------------------------|-----------------
argon2-cffi-20.1.0 | py36h2bbff1b_1 49 KB
async_generator-1.10 | py36h28b3542_0 40 KB
cffi-1.14.5 | py36hcd4344a_0 223 KB
decorator-5.0.9 | pyhd3eb1b0_0 12 KB
entrypoints-0.3 | py36_0 12 KB
importlib-metadata-3.10.0 | py36haa95532_0 33 KB
ipykernel-5.3.4 | py36h5ca1d4c_0 184 KB
ipython-7.16.1 | py36h5ca1d4c_0 1017 KB
jedi-0.17.0 | py36_0 778 KB
jinja2-3.0.0 | pyhd3eb1b0_0 106 KB
jupyter-1.0.0 | py36_7 6 KB
jupyter_core-4.7.1 | py36haa95532_0 85 KB
markupsafe-2.0.1 | py36h2bbff1b_0 24 KB
mistune-0.8.4 | py36he774522_0 55 KB
nbconvert-6.0.7 | py36_0 497 KB
notebook-6.4.0 | py36haa95532_0 4.4 MB
pandocfilters-1.4.3 | py36haa95532_1 14 KB
pygments-2.9.0 | pyhd3eb1b0_0 721 KB
pyrsistent-0.17.3 | py36he774522_0 92 KB
pywin32-227 | py36he774522_1 5.6 MB
pywinpty-0.5.7 | py36_0 50 KB
pyzmq-20.0.0 | py36hd77b12b_1 393 KB
terminado-0.9.4 | py36haa95532_0 26 KB
traitlets-4.3.3 | py36_0 140 KB
webencodings-0.5.1 | py36_1 19 KB
widgetsnbextension-3.5.1 | py36_0 868 KB
------------------------------------------------------------
Total: 15.2 MB
The following NEW packages will be INSTALLED:
argon2-cffi pkgs/main/win-64::argon2-cffi-20.1.0-py36h2bbff1b_1
async_generator pkgs/main/win-64::async_generator-1.10-py36h28b3542_0
attrs pkgs/main/noarch::attrs-21.2.0-pyhd3eb1b0_0
backcall pkgs/main/noarch::backcall-0.2.0-pyhd3eb1b0_0
bleach pkgs/main/noarch::bleach-3.3.0-pyhd3eb1b0_0
cffi pkgs/main/win-64::cffi-1.14.5-py36hcd4344a_0
colorama pkgs/main/noarch::colorama-0.4.4-pyhd3eb1b0_0
decorator pkgs/main/noarch::decorator-5.0.9-pyhd3eb1b0_0
defusedxml pkgs/main/noarch::defusedxml-0.7.1-pyhd3eb1b0_0
entrypoints pkgs/main/win-64::entrypoints-0.3-py36_0
importlib-metadata pkgs/main/win-64::importlib-metadata-3.10.0-py36haa95532_0
importlib_metadata pkgs/main/noarch::importlib_metadata-3.10.0-hd3eb1b0_0
ipykernel pkgs/main/win-64::ipykernel-5.3.4-py36h5ca1d4c_0
ipython pkgs/main/win-64::ipython-7.16.1-py36h5ca1d4c_0
ipython_genutils pkgs/main/noarch::ipython_genutils-0.2.0-pyhd3eb1b0_1
ipywidgets pkgs/main/noarch::ipywidgets-7.6.3-pyhd3eb1b0_1
jedi pkgs/main/win-64::jedi-0.17.0-py36_0
jinja2 pkgs/main/noarch::jinja2-3.0.0-pyhd3eb1b0_0
jsonschema pkgs/main/noarch::jsonschema-3.2.0-py_2
jupyter pkgs/main/win-64::jupyter-1.0.0-py36_7
jupyter_client pkgs/main/noarch::jupyter_client-6.1.12-pyhd3eb1b0_0
jupyter_console pkgs/main/noarch::jupyter_console-6.4.0-pyhd3eb1b0_0
jupyter_core pkgs/main/win-64::jupyter_core-4.7.1-py36haa95532_0
jupyterlab_pygmen~ pkgs/main/noarch::jupyterlab_pygments-0.1.2-py_0
jupyterlab_widgets pkgs/main/noarch::jupyterlab_widgets-1.0.0-pyhd3eb1b0_1
libsodium pkgs/main/win-64::libsodium-1.0.18-h62dcd97_0
m2w64-gcc-libgfor~ pkgs/msys2/win-64::m2w64-gcc-libgfortran-5.3.0-6
m2w64-gcc-libs pkgs/msys2/win-64::m2w64-gcc-libs-5.3.0-7
m2w64-gcc-libs-co~ pkgs/msys2/win-64::m2w64-gcc-libs-core-5.3.0-7
m2w64-gmp pkgs/msys2/win-64::m2w64-gmp-6.1.0-2
m2w64-libwinpthre~ pkgs/msys2/win-64::m2w64-libwinpthread-git-5.0.0.4634.697f757-2
markupsafe pkgs/main/win-64::markupsafe-2.0.1-py36h2bbff1b_0
mistune pkgs/main/win-64::mistune-0.8.4-py36he774522_0
msys2-conda-epoch pkgs/msys2/win-64::msys2-conda-epoch-20160418-1
nbclient pkgs/main/noarch::nbclient-0.5.3-pyhd3eb1b0_0
nbconvert pkgs/main/win-64::nbconvert-6.0.7-py36_0
nbformat pkgs/main/noarch::nbformat-5.1.3-pyhd3eb1b0_0
nest-asyncio pkgs/main/noarch::nest-asyncio-1.5.1-pyhd3eb1b0_0
notebook pkgs/main/win-64::notebook-6.4.0-py36haa95532_0
packaging pkgs/main/noarch::packaging-20.9-pyhd3eb1b0_0
pandoc pkgs/main/win-64::pandoc-2.12-haa95532_0
pandocfilters pkgs/main/win-64::pandocfilters-1.4.3-py36haa95532_1
parso pkgs/main/noarch::parso-0.8.2-pyhd3eb1b0_0
pickleshare pkgs/main/noarch::pickleshare-0.7.5-pyhd3eb1b0_1003
prometheus_client pkgs/main/noarch::prometheus_client-0.10.1-pyhd3eb1b0_0
prompt-toolkit pkgs/main/noarch::prompt-toolkit-3.0.17-pyh06a4308_0
prompt_toolkit pkgs/main/noarch::prompt_toolkit-3.0.17-hd3eb1b0_0
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pygments pkgs/main/noarch::pygments-2.9.0-pyhd3eb1b0_0
pyrsistent pkgs/main/win-64::pyrsistent-0.17.3-py36he774522_0
pywin32 pkgs/main/win-64::pywin32-227-py36he774522_1
pywinpty pkgs/main/win-64::pywinpty-0.5.7-py36_0
pyzmq pkgs/main/win-64::pyzmq-20.0.0-py36hd77b12b_1
qtconsole pkgs/main/noarch::qtconsole-5.0.3-pyhd3eb1b0_0
qtpy pkgs/main/noarch::qtpy-1.9.0-py_0
send2trash pkgs/main/noarch::send2trash-1.5.0-pyhd3eb1b0_1
terminado pkgs/main/win-64::terminado-0.9.4-py36haa95532_0
testpath pkgs/main/noarch::testpath-0.4.4-pyhd3eb1b0_0
traitlets pkgs/main/win-64::traitlets-4.3.3-py36_0
typing_extensions pkgs/main/noarch::typing_extensions-3.7.4.3-pyha847dfd_0
wcwidth pkgs/main/noarch::wcwidth-0.2.5-py_0
webencodings pkgs/main/win-64::webencodings-0.5.1-py36_1
widgetsnbextension pkgs/main/win-64::widgetsnbextension-3.5.1-py36_0
winpty pkgs/main/win-64::winpty-0.4.3-4
zeromq pkgs/main/win-64::zeromq-4.3.3-ha925a31_3
zipp pkgs/main/noarch::zipp-3.4.1-pyhd3eb1b0_0
Proceed ([y]/n)?
スクリーンショットを撮影できませんでしたが、
パッケージインストール終わると、wundowsからpython.exeを実行していいか?聞かれます。
補完機能をインストールしたいので、それが入っているjupyter extension機能もインストールしておく。
conda install -y -c conda-forge jupyter_contrib_nbextensions
コード補完に必要なpthonの language serverをインストールする
conda install -c conda-forge python-language-server
###Anaconda仮想環境を停止する
起動コマンドのactivateに、反対の意味の接頭辞"de"をつけた、deactivateコマンドで停止する。
(anaconda_virtual_env) C:\Users\${your_username}>conda deactivate
###Anaconda仮想環境を確認する
(base) C:\Users\${your_username}>conda info -e
base * C:\ProgramData\Anaconda3
pandas_book C:\Users\${your_username}\.conda\envs\pandas_book
###Anacondaの不要になったパッケージやキャッシュを削除
conda clean コマンドを利用すると、使われていないパッケージやキャッシュを削除することができます。 削除できるものは全て削除するのが良い。次のコマンドにより500 Mbyte以上削除できた。
conda clean -all
Anaconda仮想環境を簡単に切り替えられるようにする
( https://www.servernote.net/article.cgi?id=anaconda-jupyter-notebook-on-myenv より引用)
(base) C:\Users\${your_username}>conda info -e
# conda environments:
#
base * C:\ProgramData\Anaconda3
pandas_book C:\Users\${your_username}\.conda\envs\pandas_book
kernel listに追加し、jupyter notebookのchange kernelで選べるようにする
(https://qiita.com/tomochiii/items/8b937f15c79a0c3eae0e より引用)
# 利用可能なカーネルの表示
(base) C:\Users\${your_username}>jupyter kernelspec list
Available kernels:
python3 C:\ProgramData\Anaconda3\share\jupyter\kernels\python3
仮想環境をアクティベートした状態で追加する。
(base) C:\Users\${your_username}>conda activate pandas_book
(pandas_book) C:\Users\${your_username}>ipython kernel install --user --name=pandas_book --display-name=pandas_book
逆に追加したカーネルを削除する方法
https://qiita.com/tomochiii/items/8b937f15c79a0c3eae0e にあります。
baseを起動して、カーネルモジュールをインストール
仮想環境の切り替えを相互に行うため、base仮想環境と自分の仮想環境に上記モジュールが必要になる。
スタートメニュー→Anadonda3 64-bit→Jupyter Notebook(64bit)で起動されるのはbase環境のJupyterです。
Anaconda Promptを立ち上げ、カーネルをbaseとmyenvに両方に入れます。
(base) C:\Users\${your_username}>conda activate base
(base) C:\Users\${your_username}>pip install jupyter environment_kernels
Collecting environment_kernels
Using cached environment_kernels-1.1.1.tar.gz (28 kB)
Building wheels for collected packages: environment-kernels
Building wheel for environment-kernels (setup.py) ... done
Created wheel for environment-kernels: filename=environment_kernels-1.1.1-py3-none-any.whl size=30797 sha256=37a060aa3ca1829753a9d55a23df787c9d8341c52c851268b2e215c8742ffa11
Stored in directory: c:\users\${your_username}\appdata\local\pip\cache\wheels\e0\be\3e\601232ccfabd4e923027463dd67df3c263a6a91aace930a34d
Successfully built environment-kernels
Installing collected packages: environment-kernels
Successfully installed environment-kernels-1.1.1
(base) C:\Users\${your_username}>conda deactivate
デフォルト仮想環境baseでJupyter初期設定ファイルを生成・編集する
まず仮想環境baseで、Jupyter初期設定ファイル(jupyter_notebook_config.py)を生成する。
conda activate base
(base) C:\Users\${your_username}>jupyter notebook --generate-config
Writing default config to: C:\Users\${your_username}\.jupyter\jupyter_notebook_config.py
作成されたJupyter初期設定ファイル(jupyter_notebook_config.py)をatomやterapadなどのテキストエディタで開き、次の項目を追加する。${user_username}は自分のPCに合わせて適宜変更してください。
c.NotebookApp.kernel_spec_manager_classに、先ほどインストールしたモジュール(environment-kernels)のカーネルマネージャを指定。
c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.conda_env_dirsに 仮想環境の保存先フォルダを指定
c.EnvironmentKernelSpecManager.conda_env_dirs = ['C:\Users\${ure_username}\.conda\envs\']
各仮想環境のJupyterでカーネル操作できるよう、各仮想環境に
ipykernelのインストール
C:\Users\${ure_username}\.conda\envs\${your_env_name}> conda install notebook ipykernel
以上で、jupyter notebookで仮想環境が切り替えられるようになった。