【Memo】複数のパソコンでPythonの仮想環境を揃える! condaの仮想環境設定
1. やること
使用するパソコンが一つのときはよいですが、複数のパソコンを使用していると、それぞれのパソコンで同じ環境にしてどのパソコンで作業しても問題ないようにしておくのが便利です。現在、Ubuntu18.04を2台、Macを1台、Windows10を1台使ってますので、condaの仮想環境を揃えるようにしています。 あくまでも私の標準です。ご参考まで。
2. 環境設定のベース
Ubuntu, Mac はまず、pyenvを導入し、pyenvでanacondaを選定したのちにcondaの仮想環境を作っています。
Windowsはpyenvがありませんので、直接Anacondaをインストールして、condaの仮想環境を作っています。
pyenvもpython のバージョンを管理する仮想環境ですので、UbuntuやMacでもpyenvを導入せずにanacondaを直接導入してからcondaの仮想環境でpythonのバージョンも含めて管理したのでよいと思いますが、pyenvからanacondaを入れた方が、環境を変更するのが楽そうだったので、pyenvを入れてその中でanacondaをにしてます。
Pyenvの使い方 はこちらが参考になります。
こんな感じになります
3. pyenvの導入
pyenvのGithubにインストール方法が書かれていますので、そのとおり実施すればよいのですが、Githubは英語ですので実施したことをメモします。
3.1 Ubuntu
事前準備
ターミナルから。
sudo apt update; sudo apt install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
gitをクローン
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
環境設定(bashです。zshの方はこちらを参考にしてみてください)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc
pyenvのアップデートをプラグインでできるようにする
git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
3.2 Mac
だいぶ前に導入したもののメモってなかったので、参考をいくつかあげときます。
(もちろんググればいっぱいありますので、お気に入りの入れ方で。)
MacOSとHomebrewとpyenvで快適python環境を。
pyenvを使ってMacにPythonの環境を構築する
4. Anacondaの導入
4.1 Ubuntu, Mac
ターミナルに以下を入力。簡単です。
pyenv install anaconda3-5.3.1
anacondaのバージョンはどれでもよいですが、使用するすべてのパソコンで合わせておくのが無難です。
4.2 Windows
Anaconda からインストーラーをダウンロードしてから、インストールします。
5. condaの共通の仮想環境【本ブログのメインです】
condaで自分標準の「general」という名の仮想環境を作っていきます。名前は自由に決めてください。ただし、baseはconda標準の仮想環境で使われています。
5.1 pyenvでPythonのバージョンを設定(Ubuntu, Mac)
ターミナルで使用するバージョンを指定
pyenv global anaconda3-5.3.1
現在の指定しているバージョンはpyenv versions
で確認できます。
pyenvは参考文献のページなどをみてください。
5.2 condaの仮想環境を作成
Ubuttu, Macはターミナルから、WindowsはAnaconda Promptから作成します。
conda create -n general python=3.7 ipykernel
5.3 仮想環境 generalに有効にする (仮想環境 generalに入る)
conda activate general
仮想環境generalに入ると、ターミナルの最初が(general)となりますので、いまどこにいるかはすぐわかります。
5.4 必要なモジュールを入れる
モジュールのバージョンを合わせるため、モジュールを記載したテキストファイルを準備してから、pipします。
「生成 Deep Learning 」を勉強中に作った環境なので、本に合わせています。以下のrequirements.txtを保存してください。
requirements.txt (Noteにも同記事を書いており、Noteからはファイルのダウンロードができます。)
absl-py==0.8.1 appnope==0.1.0 astor==0.8.0 astunparse==1.6.3 attrs==19.2.0 backcall==0.1.0 bleach==3.1.0 cachetools==4.1.1 certifi==2020.6.20 chardet==3.0.4 cycler==0.10.0 decorator==4.4.0 defusedxml==0.6.0 entrypoints==0.3 gast==0.3.3 google-auth==1.18.0 google-auth-oauthlib==0.4.1 google-pasta==0.2.0 h5py==2.10.0 idna==2.10 imageio==2.6.1 importlib-metadata==0.23 ipykernel==5.1.2 ipython==7.8.0 ipython-genutils==0.2.0 ipywidgets==7.5.1 jedi==0.15.1 Jinja2==2.10.3 jsonschema==3.1.1 jupyter==1.0.0 jupyter-client==5.3.4 jupyter-console==6.0.0 jupyter-core==4.6.0 Keras==2.3.1 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.0 kiwisolver==1.1.0 Markdown==3.1.1 MarkupSafe==1.1.1 matplotlib==3.1.1 mistune==0.8.4 more-itertools==7.2.0 music21==5.7.0 nbconvert==5.6.0 nbformat==4.4.0 networkx==2.3 notebook==6.0.1 numpy==1.17.2 oauthlib==3.1.0 opt-einsum==3.1.0 pandas==0.25.1 pandocfilters==1.4.2 parso==0.5.1 pexpect==4.7.0 pickleshare==0.7.5 Pillow==6.2.0 prometheus-client==0.7.1 prompt-toolkit==2.0.10 protobuf==3.10.0 ptyprocess==0.6.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 pydot==1.4.1 pydotplus==2.0.2 Pygments==2.4.2 pyparsing==2.4.2 pyrsistent==0.15.4 python-dateutil==2.8.0 pytz==2019.3 PyYAML==5.1.2 pyzmq==18.1.0 qtconsole==4.5.5 requests==2.24.0 requests-oauthlib==1.3.0 rsa==4.6 scikit-image==0.17.2 scipy==1.4.1 Send2Trash==1.5.0 six==1.12.0 tensorboard==2.2.2 tensorboard-plugin-wit==1.7.0 tensorflow==2.2.0 tensorflow-addons==0.10.0 tensorflow-estimator==2.2.0 termcolor==1.1.0 terminado==0.8.2 testpath==0.4.2 tornado==6.0.3 traitlets==4.3.3 typeguard==2.9.1 urllib3==1.25.9 wcwidth==0.1.7 webencodings==0.5.1 Werkzeug==0.16.0 widgetsnbextension==3.5.1 wrapt==1.11.2 zipp==0.6.0
requirements.txtはpip
を実行するところと同じ階層(ディレクトリ)においておきます。
ターミナル・Anaconda Prompt から、
pip install -r requirements.txt
5.4 仮想環境でjupyter notebook 動かせるように設定
ターミナル・Anaconda Prompt から、
python -m ipykernel install --user --name general
通常のjupyter notebookと同じようにターミナルからjupyter notebook
を立ち上げて、newをクリックすると「general」がありますので、「general」を選ぶと仮想環境でのjupyter notebookとなります。
5.5 仮想環境からの脱出
ターミナル・Anaconda Prompt から、
conda deactivate general
6. 注意点など
環境は使用していくうちに新しいモジュールのインストールや、モジュールのバージョンアップ、ダウンが必要となってきます。変更したものは、requirement.txtに、追加したモジュールや変更したバージョンを入力していく必要があります。(これは結構面倒です。よい方法があれば教えてください)
同じ環境を作ってもパソコンのハードの仕様によって動かない場合がありました。私の場合はTensorFlow2のバージョンにより古いPCでは動かないことがありました。
同時期に複数のパソコンで設定する場合は、この方法でよいですが先によく使っているパソコンがあり、その環境を別のパソコンでも作成するには、conda仮想環境のコピーができるようです。その場合はコピーにチャレンジしてみる価値はあると思います。(私はしたことがないので、どの程度、便利なのかはわかりません。)
Anacondaを使った仮想環境を保存・再構築、複製
Python Anaconda環境をコピーする。その環境下でTensorFlowをダウングレードする手順
7. 参考文献
Pyenvの使い方
Anacondaを使った仮想環境を保存・再構築、複製
Python Anaconda環境をコピーする。その環境下でTensorFlowをダウングレードする手順
'-------------------- おしまい --------------------'