linuxBean14.04(72)Anacondaで科学技術系Pythonパッケージを一括インストールする

2015-09-25

旧ブログ

t f B! P L

前の関連記事:linuxBean14.04(71)IPython3.2.1のNotebookを使う


linuxBean14.04(70)Jupyter NotebookをPyCharm4.5で使うでJupyterをインストールしてからmatplotlibでグラフを描いてみたりいろいろしてみるとあれやこれやと追加のパッケージのインストールを求められます。面倒なので科学技術系Pythonパッケージを一括インストールできるAnacondaをインストールします。

Anaconda3 2.3.0 (32-bit)のインストール


Python3.4を含んだAnaconda3をインストールします。

JupyterもAnacondaでインストールできるのでlinuxBean14.04(69)MySQL5.6にPython3.3から接続するが終わった状態からインストールします。

新たにPython3.4.3がインストールされてpython3やpip3コマンドが~/anaconda3/bin/pythonに変更になりますので、すでにPython3がインストールされている環境にインストールするときは注意が必要です。

Python数値計算環境Anacondaの導入の解説がわかりやすいです。

Anacondaのインストールには3GB程の空き容量が必要だそうです。


Download Anaconda Python Distributionタックス→I WANT PYTHON 3.4、とクリックして左下にあるLinux 32-bit Python3.4をクリックします。

インストールやアップデート方法の解説はAnaconda Install — Continuum documentationにあります。

~/anaconda3という名前の単一フォルダにインストールされるのでアンイストールはこのフォルダを削除するだけです。

Python3.4もシステムPythonとは別に~/anaconda3/bin/pythonがインストールされます。

ダウンロードしたAnaconda3-2.3.0-Linux-x86.shファイルがあるフォルダをファイルマネージャで開きます。

Chromeを立ち上げながらやると途中にエラーを出しながらインストールが進んでしまうのでChromeは終了しておきます。

ツール→現在のフォルダを端末で開く。

bash Anaconda3-2.3.0-Linux-x86.sh

ホームフォルダにインストールされるので一般ユーザ権限でインストールできます。
Welcome to Anaconda3 2.3.0 (by Continuum Analytics, Inc.)

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> 
Enterキーでインストールを開始します。

LICENSE AGREEMENTはEnterキーを押し続けていると知らない間にNoを選択しまうのでスペースキーで読みます。
Do you approve the license terms? [yes|no]
[no] >>> yes
yesと入力します。
[/home/pq/anaconda3] >>>
この表示がでてからEnterを1回押して待ちます。
PREFIX=/home/pq/anaconda3
この表示がでてからしばらくかかります。

いらいらしてEnterキーを追加で打たないように気をつけましょう。
installing: python-3.4.3-1 ...
installing: conda-3.14.1-py34_0 ...
待っているとインストールが始まります。
全部で136個のinstalling:が続きます。
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/pq/.bashrc ? [yes|no]
[no] >>> 
You may wish to edit your .bashrc or prepend the Anaconda3 install location:

$ export PATH=/home/pq/anaconda3/bin:$PATH

Thank you for installing Anaconda3!
最後にAnaconda3のインストールフォルダを /home/pq/.bashrcに追記するのかという質問がでます。

yesと回答したかったのですが、PREFIX=/home/pq/anaconda3がでてからEnterキーを連打してしまったので勝手にnoとされてしまいました。

~/.bashrcをLeafpadを開いて以下を追記して保存します。

export PATH=/home/pq/anaconda3/bin:$PATH

ホームフォルダのパスは適宜書き換えてください。
source ~/.bashrc

これで書き換えた~/.bashrcを反映させます。
pq@pq-VirtualBox:~/ダウンロード$ python3.4 -V
Python 3.4.3 :: Anaconda 2.3.0 (32-bit)
python3.4に対してAnakonda3がインストールされたことがわかります、、、

もともとpython3.4というコマンドでは/usr/bin/python3.4が起動するようになっていたのですが~/anaconda3/bin/python書き換えられてしまいました。
(2016.5.22追記linuxBean14.04(115)pythonコマンドをpipコマンドとともに切り替えるで対処しました。)
pq@pq-VirtualBox:~$ pip -V
pip 7.0.3 from /home/pq/anaconda3/lib/python3.4/site-packages (python 3.4)
pipもAnaconda3のものが起動するようになっています。

python3.4コマンドもpipコマンドも最後にインストールしたものが設定されるのでシステムPythonを再インストールすればよいのでしょうけど、わざわざ再インストールしなくても変更できる方法を考えてみましたがわかりませんでした。
(2016.5.19追記。これは環境変数PATHの設定変更だけの問題です。curlなどもAnaconda付属のものへのパスが優先されるのでHTTPS接続には設定追加が必要です。linuxBean14.04(107)nvmでnode.jsのインストールができない問題への対応参照。)
#!/usr/bin/python3.4

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())
/usr/local/bin/pipのshebangでどのpipを起動するのかが決まると思っていましたがそうではないようです。

この7行目でインポートしている「main」が何なのか知りたかったのですがよくわかりませんでした。

AnacondaのPythonパッケージをアップグレードする



Python4.5のSettingsで~/anaconda3/bin/pythonのパッケージ一覧をみてみると最新版がでているものがたくさんあります。

ipythonも3.2.0のままです。

Python Packages and Environments with conda

このページを読むとAnacondaのパッケージマネージャのCondaがpipに対して優れていることが書いてあります。

pipでのインストールではPythonパッケージのインストールはできますが、Pythonでないライブラリのインストールはできません。

例えばmatplotlibのmatplotlib.animation.AnimationクラスをPython3で使おうとするとcairocffiパッケージのインストールが必要で、cairocffiパッケージのインストールにはSynapticパッケージマネージャでlibffi-devをインストールが必要になってきます。

どのUbuntuパッケージをSynapticパッケージマネージャでインストールしないといけないかはpipは教えてくれないのでpipの吐くエラーをみて自分で調べないといけません。

これはかなり面倒ですが、condaではこれらを解決しnon-Pythonライブラリもインストールできるようになっているそうです。

ということでAnacondのパッケージをcondaを使ってアップグレードします。

まずはconda自身のアップデートをしてみます。Update conda to the current version

conda update conda
pq@pq-VirtualBox:~$ conda update conda
Fetching package metadata: ....
Solving package specifications: .
Package plan for installation in environment /home/pq/anaconda3:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-env-2.4.2            |           py34_0          24 KB
    setuptools-18.3.2          |           py34_0         346 KB
    wheel-0.26.0               |           py34_1          77 KB
    conda-3.17.0               |           py34_0         177 KB
    pip-7.1.2                  |           py34_0         1.5 MB
    ------------------------------------------------------------
                                           Total:         2.1 MB

The following NEW packages will be INSTALLED:

    wheel:      0.26.0-py34_1

The following packages will be UPDATED:

    conda:      3.14.1-py34_0 --> 3.17.0-py34_0
    conda-env:  2.2.3-py34_0  --> 2.4.2-py34_0 
    pip:        7.0.3-py34_0  --> 7.1.2-py34_0 
    setuptools: 17.1.1-py34_0 --> 18.3.2-py34_0

Proceed ([y]/n)? 
Anaconda3 2.3.0をインストールしたばかりですがすでにcondaが3.1.14から3.17.0にアップデートされています。

pipやsetuptoolsなどのインストールパッケージもアップデートしてくれます。

Enterキーを押すとアップデートしてくれます。

今度はAnacondaをアップデートしてみます。

conda update anaconda
pq@pq-VirtualBox:~$ conda update anaconda
Fetching package metadata: ....
# All requested packages already installed.
# packages in environment at /home/pq/anaconda3:
#
anaconda                  2.3.0                np19py34_0      
これはさすがにアップデートはでていないです。

condaを使っての各Pythonパッケージのインストールやアップデート、アンイストール方法はManaging packages — Conda documentationに解説があります。

conda updateをみると--allですべてのパッケージのアップデートができるようなのでもうすべてアップデートしてしまいます。

conda update --all
(2017.9.6追記。これをすると依存関係が確認されているパッケージの集合というAnacondaのメリットの一つが失われるようです。linuxBean14.04(175)Anacondaの運用方法を考える参照。)

アップデートされるパッケージがたくさんでてきました。

ipythonも3.2.0から4.0.0にアップデートされ、さらにjupyterが新規インストールされるリストにでてきました。

Enterキーを打つとインストールが始まります。

これは便利ですねえ。condaだけですべてインストールしてくれます。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!
!!  The 'binstar' conda package has been renamed to 'anaconda-client'.
!!  Please run:
!!
!!    conda install anaconda-client
!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
最後にこんなメッセージがでてきました。

conda install anaconda-client

いわれた通りにanaconda-clientをインストールしておきました。


PyCharm4.5でみてみるとアップグレード可能なパッケージ数が激減しています。

PyCharm4.5からアップグレード可能なパッケージ、つまりpipでアップデード可能なパッケージがまだいくつか残っていますが整合性がくずれては嫌なのでcondaでアップデートできるまで待つことにします。

多量のPythonパッケージがアップデートされたのでPyCharm4.5のUpdateing skeletonsにすごく時間がかかりますので気長に待ちます。

Jupyter Notebookのランチャを作る


Terminalからjupyter notebookとするとJupyter Notebookが起動しました。

ところがlinuxBean14.04(70)Jupyter NotebookをPyCharm4.5で使うの「Jupyter Notebookを起動するランチャーを作る」と同様にしてJupyter Notebookのランチャーを作ったところ「不正なデスクトップエントリ名」とエラーがでてきます。

ランチャのコマンド欄に入力したjupyterコマンドが認識できないようです。
/home/pq/anaconda3/bin/jupyter notebook --notebook-dir=/home/pq/PycharmProjects
フルパスでいれてもダメです。

'notebook' is not a Jupyter command · Issue #448 · jupyter/notebookを読んでjupyterとnotebookの間にハイフンを入れたら起動できました。
/home/pq/anaconda3/bin/jupyter-notebook --notebook-dir=/home/pq/PycharmProjects
起動フォルダはPyCharm4.5のプロジェクトフォルダにしました。

Python3.3で動くAnaconda3をインストールできたが--allではアップデートできず


Managing Python — Conda documentation

condaでPython3.3とそのパッケージをインストールします。

conda create -n py33 python=3.3 anaconda

これでAnaconda3のPython3.3バージョンが~/anaconda3/envs/py33にインストールされました。

Managing environments — Conda documentation

conda env list

これで現在インストールされているAnaconda3の実行環境の一覧が出力されます。
pq@pq-VirtualBox:~$ conda env list
# conda environments:
#
py33                     /home/pq/anaconda3/envs/py33
root                  *  /home/pq/anaconda3
アスタリスク*が付いているのが現在アクティブな環境です。

source activate py33

これでアクティブな環境を切り替えられます。

(2016.5.19追記。「. activate py33」でも切り替えられます。linuxBean14.04(114)「./myscript」「myscript」「source myscript」「. myscript」の違い参照。)
pq@pq-VirtualBox:~$ source activate py33
discarding /home/pq/anaconda3/bin from PATH
prepending /home/pq/anaconda3/envs/py33/bin to PATH
(py33)pq@pq-VirtualBox:~$ pip -V
pip 7.1.0 from /usr/local/lib/python3.3/dist-packages (python 3.3)
(py33)pq@pq-VirtualBox:~$ python3 -V
Python 3.3.5 :: Anaconda 2.3.0 (32-bit)
python3コマンドはAnacondaの3.3.5のものになりましたが、pipは元の/user/bin/python3.3のもののままです。

プロンプトの先頭に環境の名前が表示されるようになります。

conda update conda

これは/home/pq/anaconda3/envs/py33にcondaはインストールされていないとエラーがでます。
(py33)pq@pq-VirtualBox:~$ conda update conda
Error: package 'conda' is not installed in /home/pq/anaconda3/envs/py33
conda info and lock-file for non-root users · Issue #170 · conda/condaにエラーの意味が書いてありそうですが議論が難しくてよく理解できませんでした。

conda update anaconda

Anacondaはpy33からもアップデートできるようです。
(py33)pq@pq-VirtualBox:~$ conda update anaconda
Fetching package metadata: ....
# All requested packages already installed.
# packages in environment at /home/pq/anaconda3/envs/py33:
#
anaconda                  2.3.0                np19py33_0
conda update --all

これは実行しかかりましたが、Solving package specificationsとでたまま2時間ほど経過したのでやめました。

linuxBean14.04(38)LibreOfficeバンドルPythonにパッケージを追加で設定したsites.pthが原因かと思ってsites.pthを消しましたが解決しませんでした。

Anacondaでは依存関係のため必ずしも最新パッケージにアップデートするわけではなく、Anacondaで指定したバージョンよりもすでに新しいバージョンが入っているときはエラーになるようですが、エラーメッセージも表示されないので原因不明です。

次にやるように個別のパッケージ名を指定してのアップデートはできました。

ノートパソコンにインストールしたらJupyter Notebookが使えなかった


(2015.10.30追記。原因が判明しました。linuxBean14.04(84)conda upgrade --allで問題発生へ。)

VirtualBoxにインストールしたlinuxBean14.04では問題なくJupyter Notebookが使えたのですが、ノートパソコンにインストールしたlinuxBean14.04にインストールしたJupyter Notebookが使えませんでした。

python - IPython kernel dies on startup - Stack Overflow

これと同じようにセルをRunするとkernelが死んでいるので再起動といわれるのですが一向にRunされません。

Terminalからみるとkernel自体はちゃんと立ち上がっています。

いまところ解決していません。

Pentium4のマシンでなにごとも時間がかかるのであまりいろいろやる気がないので、、、

ipython crash on startup: "It seems the kernel died unexpectedly." - Google グループ

zeromq 4.0.6が原因? アップグレードかダウングレードしたら解決したと書いてますね。

Unable to start IPython kernel with 4.0 · Issue #297 · jupyter/notebook · GitHub

こちらはlibzmq 4.0.5を4.1.2にしたのが原因だったようです。

いずれにせよzeromqの問題だろうか。

pyzmqがzeromqのPythonバインディングになります。

またそのうちやってみよう、、、

ちゃんと動いているVirtualBoxのlinuxBean14.04のSynapticパッケージマネージャでzeromqを検索して引っかかるパッケージは一つもインストールしてありませんでした。

Ipyhton notebook kernel dies when you want to plot something - Google グループ

環境を作り直してみることも提案されていますね。

2015.9.29追記

conda create --name py34 --clone root

これでrootをコピーした環境を作ってもJupyter Notebookは同様に動きませんでした。

ちなみにこのpy34でconda update --allはpy33のときと同様に途中で動かなくなりましたが、これはUpdating All Packages in a Specific Virtual Environment - Google グループで解決するかもしれません。

source activate py33 のあとconda update ipython ではpy33のipythonがアップデートされました。

ipython notebookは使えました。

py33でconda install jupyter とするとjupyterはpython3.3と衝突してインストールできない、といわれました。

conda update ipython ではipythonが3.2.0から3.2.1にアップデートされました。

py33のipython notebookはjupyter notebookが動かなかったノートパソコンでも使えました。

ランチャを作成するためにフルパスでの起動はJupyterと違ってハイフンを入れると逆にエラーが出ましたのでハイフンなしで起動しました。
/home/pq/anaconda3/envs/py33/bin/ipython-notebook --notebook-dir=/home/pq/PycharmProjects
(pqはlinuxBean14.04のログインアカウント名です。)

参考にしたサイト


Python数値計算環境Anacondaの導入
少し前のバージョンのものですがインストール方法の解説がわかりやすいです。

Download Anaconda Python Distribution
Anacondaのダウンロードサイト。condaとPythonだけでよいならMinicondaをインストールします。

タックス - Wikipedia
Linuxの公式マスコット。

Anaconda Install — Continuum documentation
Anacondaのインストール方法。

Python Packages and Environments with conda
condaを使うとpipと違ってPythonパッケージ以外のものも同時にインストールできます。

Conda — Conda documentation
condaのマニュアル。

animation — Matplotlib 1.4.3 documentation
pipでインストールしたmatplotlibでこのクラスを使うにはlibffi-devのインストールが必要でした。

'notebook' is not a Jupyter command · Issue #448 · jupyter/notebook · GitHub
condaでインストールしたJupyter Notebookをランチャで起動するにはjupyter-notebookとする必要がありました。

conda info and lock-file for non-root users · Issue #170 · conda/conda
conda update condaのエラー表示に関する議論。

次の関連記事:linuxBean14.04(73)matplotlibでアニメーションのグラフ

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ