Help us understand the problem. What is going on with this article?

Anaconda仮想環境について

1. はじめに

普段、ディープラーニング関係はPyCharm上で、csvファイルのデータの集計などはJuypter Notebook上で今までほぼ不自由なく、仮想環境のことなどはあまり深く考えず使ってきたのですが、Jupyter Notebook上でもtensorflowを使ってみようと思い、色々調べたことをメモしておきます。

OSはWindowsです。
Anacondaはインストール済みという前提です。

間違いや追記したほうがいい内容があればご指摘いただければ幸いです。

2. Anacondaプロンプト

Anacondaをインストールすると、Anacondaプロンプトが使用できるようになります。Anaconda Navigatorというのもありますが、起動が遅いので私はあまり使っていません。なので、Anacondaプロンプトが起点になっています。

Anacondaプロンプトでできることは

  • Pythonインタプリタの起動
  • condaコマンドの使用
    • Anaconda仮想環境の操作
    • パッケージの操作 (pipは使わないほうがいい)
  • Jupyter Notebookの起動
  • TensorBoardの起動

などです。

Windowsではコマンドプロンプトがありますが、AnacondaプロンプトはコマンドプロンプトにAnacondaの環境変数がセットされたものです。コマンドプロンプトで使うcdやdirはAnacondaプロンプトでも使用できます。

3. Anaconda仮想環境

Pythonでは仮想環境というものが使えます。Python標準の仮想環境はvenvというもののようですが、Anacondaをインストールした場合にはAnaconda仮想環境というものを使用します。

Pythonではまず仮想環境を作って、その中に必要なパッケージをインストールしていくことになります。仮想環境を使いこなすことで、プロジェクト毎に必要なパッケージを必要なバージョンのまま保っておくことができます。

download.png

  • Pythonインタプリタ自体も仮想環境にインストールされているパッケージの一つで、仮想環境毎に異なるバージョンのPythonを使用することもできます。
  • Jupyter Notebookを使用する場合、仮想環境の下にjupyterパッケージがインストールされている必要があります。

4. condaコマンドによる仮想環境の操作

  • conda env list
    • Anaconda仮想環境の一覧
    • これにより、Anaconda仮想環境の実体がどこにあるのかも表示される
    • 現在Activate中の仮想環境に*がつく
    • conda info -eでも同じ
  • conda activate [name]
    • 仮想環境に入る
  • conda deactivate
    • 仮想環境を抜ける
  • conda create -n [name] python=3.6
    • 新しい仮想環境を作る
  • conda create -n [new name] --clone [existing name]
    • 既存の仮想環境をコピーして新規に仮想環境を作る
  • conda remove -n [name] --all
    • 仮想環境を削除

5. condaコマンドによるパッケージの操作

パッケージはよくpipでインストールしたりするようですが、Anacondaがインストールされている場合、pipは極力使わないほうがいいようです。(ここを参照)

  • conda list
    • 現在Activate中の仮想環境にインストール済みのパッケージの一覧
  • conda list -n [name]
    • 現在Activate中ではなく、[名前]で指定した仮想環境にインストール済みのパッケージの一覧
  • conda install [name]
    • パッケージのインストール
  • conda install [name] ==x.x.x
    • パッケージのインストール(バージョン指定)
  • conda uninstall [name]
    • パッケージのアンインストール
  • conda update --all
    • 現在Activate中の仮想環境のすべてのパッケージを更新
  • conda update [name]
    • パッケージを指定して更新

6. その他のcondaコマンド

  • conda --version
    • condaコマンドのバージョンを調べる
  • conda update -n base conda
    • condaのバージョンを更新

7. Jupyter Notebook

通常、Pythonでコードを描くとき、AnacondaプロンプトからPythonインタプリタを起動して作業することはあまりしないと思います。もっと使いやすいJupyter NotebookやPyCharmなどのIDEを使用すると思います。

  • Jupyter NotebookはAnacondaプロンプトでjupyter notebookで起動し、CTRL+Cで終了します。

190412-02.png

  • Jupyter NotebookではWebアプリとしてのインターフェースの裏側でIPythonカーネルが動いており、IPythonカーネルがPythonインタプリタとJupyterインターフェースの橋渡しをしている関係になっています。
  • IPythonカーネルのほかにIRubyなどが使えるようです
  • Jupyter Notebook上では!conda env listというように先頭に!を付けてAnacondaプロンプト(シェル)上での操作をJupyter Notebook上でできます。
  • またJupyter Notebook上で%pwdというように先頭に%を付けてマジックコマンドを実行できます。
  • マジックコマンドはIPythonカーネルが提供する機能です。

8. Jupyter Notebookで仮想環境を切り替えられるようにする

Jupyter NotebookはAnacondaをインストールしたままの状態では仮想環境の切り替えができないので、これができるようにします。
大まかな手順は

  1. environment_kernelsをインストール
  2. jupyter configファイルを生成
  3. jupyter configファイルに仮想環境を読み込む設定を追記

なお、わざわざenvironment_kernelsをインストールしなくても、シェルの機能を使って!conda activate test_envなどとすれば仮想環境が切り替わるような気がしますが、うまくいきませんでした。

Jupyter Notebookで仮想環境を使うためには、その仮想環境にjupyterパッケージがインストールされている必要があります。

8.1 environment_kernelsのインストール

上に書いたように、Anacondaを使用する場合はパッケージのインストールにはpipではなくcondaコマンドを使用したほうがいいのですが、condaでenvironment_kernelsをインストールしようとすると「(Anaconda社のリポジトリに)パッケージが見つからない」というようなエラーが出ました。
仕方ないので私はpipでインストールしました。

サンプルコード(プロキシ通過)

pipでインストールするときはプロキシ情報をいちいち記述する必要があります
* ユーザー名:yaki
* パスワード:sobamilk
* プロキシアドレス:yaki.soba.milk.com
* プロキシポート番号:8080

(base) C:\... >pip install environmet_kernels --proxy=http://yaki:sobamilk@yaki.soba.milk.com:8080/


8.2 jupyter configファイルの生成

フォルダC:\Users\user_name\.jupyterの下にjupyter_notebook_config.pyというファイルがなければ、Anacondaプロンプトから次の操作でデフォルトのjupyter configファイルを生成します。

(base) C:\... >jupyter notebook --generate-config

8.3 jupyter configファイルに仮想環境を読み込む設定を追記

生成されたjupyter_notebook_config.pyは全行コメントアウトされています。
末尾に次の行を追加します。

c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.conda_env_dirs = [ 'C:/Users/user_name/AppData/Local/Continuum/anaconda3/' ]
  • 上の行は不要というサイトがあったりしますが、私の場合は必要でした。
  • 下の行の[]内はAnaconda仮想環境が集まっているフォルダを指定します。
  • jupyter_notebook_config.pyファイルは.pyファイルとなっているので、ファイルパスの区切り文字が¥だとダメ。

また、このjupyter_notebook_config.pyを編集することでJupyter Notebookの作業フォルダを変更したり、その他いろいろカスタマイズできる模様。

以上でJupyter NotebookのKernel -> Change kernelから仮想環境が選択できるようになります。

190412-03.png

9. PyCharm

  • PyCharmではFile -> Settingsで出てくるウィンドウのProject Interpreterから作成済みのAnaconda仮想環境を指定できます。
  • PyCharm上でもJupyter Notebookは使用できるようです(ここを参照)が、IPython NotebookサーバーのURLの指定がうまくいかないせいか、使えませんでした。時間のある時にまた試してみたいと思います。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした