(2017.3.19追記。原因が判明しうまくいきました。linuxBean14.04(152)AnacondaとJupyter NotebookとLibreOffice5.2(成功編)参照。)
前の関連記事:linuxBean14.04(149)LibreOfficeマクロ開発環境の構築:その1
Anaconda 2.3.0を4.3.1にアップグレードする、、、ことはできず
linuxBean14.04(72)Anacondaで科学技術系Pythonパッケージを一括インストールするのAnaconda2.3.0が4.3.1になっているのでアップグレードします。
AnacondaのPythonインタープリターの使用はPATHで設定されているので、その有効無効を変更するスクリプトをlinuxBean14.04(115)pythonコマンドをpipコマンドとともに切り替えるで作成しましたので、まず. anaでAnacondaを有効にします。
pq@pq-VirtualBox:~$ . ana pq@pq-VirtualBox:~$ python3 -V Python 3.4.3 :: Anaconda 2.3.0 (32-bit)これでAnacondaが有効になりました。
まずはconda自身のアップデートをします。
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.6.0 | 0 502 B libffi-3.2.1 | 1 38 KB openssl-1.0.2k | 1 2.6 MB sqlite-3.13.0 | 0 1.1 MB xz-5.2.2 | 1 650 KB zlib-1.2.8 | 3 85 KB python-3.4.5 | 0 14.7 MB idna-2.2 | py34_0 125 KB pyasn1-0.2.3 | py34_0 80 KB pycosat-0.6.2 | py34_0 195 KB pycparser-2.17 | py34_0 158 KB requests-2.13.0 | py34_0 814 KB ruamel_yaml-0.11.14 | py34_1 372 KB setuptools-27.2.0 | py34_0 527 KB wheel-0.29.0 | py34_0 82 KB cffi-1.9.1 | py34_0 324 KB pip-9.0.1 | py34_1 1.7 MB cryptography-1.7.1 | py34_0 795 KB pyopenssl-16.2.0 | py34_0 71 KB conda-4.3.14 | py34_0 508 KB ------------------------------------------------------------ Total: 24.7 MBうーん、updateされるのはPython3.4のものですね。
conda update anaconda
これでanaconda自体アップデートできるのかと思いましたが、そうでもないようです。
pq@pq-VirtualBox:~$ conda update anaconda Fetching package metadata ......... Solving package specifications: . Package plan for installation in environment /home/pq/anaconda3: The following packages will be UPDATED: anaconda: 2.3.0-np19py34_0 <unknown> --> custom-py34_0 curl: 7.43.0-1 --> 7.52.1-0 flask: 0.10.1-py34_1 <unknown> --> 0.10.1-py34_2 pandas: 0.17.0-np110py34_0 --> 0.17.1-np19py34_0 pycurl: 7.19.5.1-py34_2 <unknown> --> 7.43.0-py34_2 pyqt: 4.11.3-py34_1 <unknown> --> 4.11.4-py34_3 sockjs-tornado: 1.0.1-py34_0 <unknown> --> 1.0.3-py34_0 terminado: 0.5-py34_0 <unknown> --> 0.6-py34_0 The following packages will be SUPERCEDED by a higher-priority channel: libxml2: 2.9.2-0 <unknown> --> 2.9.0-0 scikit-image: 0.11.3-np19py34_0 <unknown> --> 0.11.3-np19py34_0 The following packages will be DOWNGRADED due to dependency conflicts: freetype: 2.5.5-0 --> 2.5.2-2 numpy: 1.10.0-py34_0 --> 1.9.3-py34_0 Proceed ([y]/n)?うーん、とりあえずこれはやめにしました。
LibreOffice5.2のPythonインタープリターはPython 3.5.0なので、conda search pythonで探すと3.5.0がでてきたのでまずそれをインストールすることにしました。
conda install python=3.5.0
pq@pq-VirtualBox:~$ conda install python=3.5.0 Fetching package metadata ......... Solving package specifications: . UnsatisfiableError: The following specifications were found to be in conflict: - beautiful-soup -> python 3.3* - python 3.5.0* Use "conda info <package>" to see the dependencies for each package.これもダメですね。
conda install anaconda=4.3
pq@pq-VirtualBox:~$ conda install anaconda=4.3 Fetching package metadata ......... Solving package specifications: . UnsatisfiableError: The following specifications were found to be in conflict: - anaconda 4.3* -> llvmlite 0.15.0 py36_0 - anaconda 4.3* -> numba 0.30.1 np111py36_0 - anaconda 4.3* -> numexpr 2.6.1 np111py36_2 - anaconda 4.3* -> scikit-learn 0.18.1 np111py36_1 - basemap Use "conda info <package>" to see the dependencies for each package.これもダメですね。
もうあきらめて新規にAnaconda 4.3.1をインストールし直すことにしました。
(結局Anacondaの再インストールをしなくても次にやっているようにconda create -n py350 python=3.5.0 anacondaとすればよかったようです。)
ディスク容量がなかったので~/anaconda3フォルダを削除しました。
. deanaでPATHも戻しておきました。
これまでやってきたAnaconda関連がすべて消えてしまうので、ディスク容量があれば改名して置いといたほうがよいでしょう。
Anaconda 4.3.1をインストールしてPython 3.5.0もインストールする
Download Anaconda Now! | Continuum
ここからPython3.6 versionの32-BIT INSTALLERをクリックしてAnaconda3-4.3.1-Linux-x86.shをダウンロードしました。
bash Anaconda3-4.3.1-Linux-x86.sh
このコマンドでインストールしました。
Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/pq/.bashrc ? [yes|no] [no] >>> noこれはlinuxBean14.04(115)pythonコマンドをpipコマンドとともに切り替えるのanaとdeanaを使うのでnoにしました。
pq@pq-VirtualBox:~$ which python3 /usr/bin/python3 pq@pq-VirtualBox:~$ . ana pq@pq-VirtualBox:~$ which python3 /home/pq/anaconda3/bin/python3 pq@pq-VirtualBox:~$ python3 -V Python 3.6.0 :: Anaconda 4.3.1 (32-bit)これでインストール完了です。
conda update conda
conda update --all
(2017.9.6追記。これをすると依存関係が確認されているパッケージの集合というAnacondaのメリットの一つが失われるようです。linuxBean14.04(175)Anacondaの運用方法を考える参照。)
アップデートもしました。
conda update --allはとても時間がかかりました。
結果的にpythonもアップデートされて3.5.0から3.5.3になりました。
LibreOffice5.2のPythonインタープリターと同じPython 3.5.0をインストールします(linuxBean14.04(86)AnacondaのパッケージをLibreOfficeマクロで使う参照)。
conda create -n py350 python=3.5.0 anaconda
pq@pq-VirtualBox:~$ conda env list # conda environments: # py350 /home/pq/anaconda3/envs/py350 root * /home/pq/anaconda3 pq@pq-VirtualBox:~$ source activate py350 (py350) pq@pq-VirtualBox:~$ conda update --allconda env list
これでPython 3.5.0に切り替えるにはsource activate py350とすればよいことがわかります。
py350に切り替えて
py350に切り替えてconda update --allにするとPythonインタープリターも3.5.3にアップデートしてしまうのでしてはいけません。
5.3.0にアップデートするとLibreOfficeのインタープリターでJupyter Notebookを起動できなかったので、conda remove --name py350 --allでアップデートしたpy350は削除して、また3.5.0をインストールし直しました。
Jupter Notebookの起動
pq@HP6730b1:~$ which python3 /usr/bin/python3 pq@HP6730b1:~$ . ana pq@HP6730b1:~$ which python3 /home/pq/anaconda3/bin/python3 pq@HP6730b1:~$ source activate py350 (py350) pq@HP6730b1:~$ jupyter notebookこれでPython 3.5.0でJupyter Notebookを起動できました。
jupyter notebook --notebook-dir=~/.config/libreoffice/4/user/Scripts/python
これでマイマクロフォルダを指定してJupyter Notebookを起動できました。
linuxBean14.04(86)AnacondaのパッケージをLibreOfficeマクロで使うのsites.pthを設定していないのでLibreOfficeのPythonインタープリターではJupyter Notebookは起動できません。
(py350) pq@HP6730b1:~$ python3 Python 3.5.3 |Anaconda custom (32-bit)| (default, Mar 6 2017, 11:57:42) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/home/pq/anaconda3/envs/py350/lib/python35.zip', '/home/pq/anaconda3/envs/py350/lib/python3.5', '/home/pq/anaconda3/envs/py350/lib/python3.5/plat-linux', '/home/pq/anaconda3/envs/py350/lib/python3.5/lib-dynload', '/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages', '/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/Sphinx-1.5.1-py3.5.egg', '/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg']~/.local/lib/python3.5/site-packages/sites.pthにこの最後の行のパスを1行ずつ入力して保存しました。
/opt/libreoffice5.2/program/python ~/anaconda3/envs/py350/bin/jupyter notebook
これでJupyter NotebookがLibreOffice5.2のバンドルPythonで起動できると思ったのですがエラーがでてきて起動しません。
pq@HP6730b1:~$ /opt/libreoffice5.2/program/python ~/anaconda3/envs/py350/bin/jupyter notebook jupyter: 'notebook' is not a Jupyter command pq@HP6730b1:~$ /opt/libreoffice5.2/program/python ~/anaconda3/envs/py350/bin/jupyter-notebook Traceback (most recent call last): File "/home/pq/anaconda3/envs/py350/bin/jupyter-notebook", line 4, in <module> from notebook.notebookapp import main File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/notebook/notebookapp.py", line 32, in <module> from zmq.eventloop import ioloop File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/zmq/__init__.py", line 66, in <module> from zmq import backend File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/zmq/backend/__init__.py", line 41, in <module> reraise(*exc_info) File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/zmq/utils/sixcerpt.py", line 34, in reraise raise value File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/zmq/backend/__init__.py", line 29, in <module> _ns = select_backend(first) File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/zmq/backend/select.py", line 27, in select_backend mod = __import__(name, fromlist=public_api) File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/zmq/backend/cython/__init__.py", line 6, in <module> from . import (constants, error, message, context, ImportError: cannot import name 'constants'/opt/libreoffice5.2/program/python ~/anaconda3/envs/py350/bin/jupyter-notebook、としてもダメで結局解決できませんでした。
pq@HP6730b1:~$ /opt/libreoffice5.2/program/python Python 3.5.0 (default, Feb 28 2017, 17:22:52) [GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/numpy/__init__.py", line 180, in <module> from . import add_newdocs File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/numpy/add_newdocs.py", line 13, in <module> from numpy.lib import add_newdoc File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/numpy/lib/__init__.py", line 8, in <module> from .type_check import * File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/numpy/lib/type_check.py", line 11, in <module> import numpy.core.numeric as _nx File "/home/pq/anaconda3/envs/py350/lib/python3.5/site-packages/numpy/core/__init__.py", line 14, in <module> from . import multiarray ImportError: cannot import name 'multiarray'numpyのインポートも失敗してしまいます。
久しぶりにPythonを扱ったので、何か設定が抜けているのか、それともPython3.3と3.5で仕様が変わったせいなのか、原因はよくわかりませんでした。
Cython利用の問題?
結局Python 3.5.3でJupyter Notebookを使うことにした
pq@pq-VirtualBox:~$ conda env list # conda environments: # py350 /home/pq/anaconda3/envs/py350 root * /home/pq/anaconda3 pq@pq-VirtualBox:~$ source activate py350 (py350) pq@pq-VirtualBox:~$ python3 -V Python 3.5.3 :: Anaconda custom (32-bit)conda update --allをしたのでpy350でPython 3.5.3になっているのでpy350をpy35にk改名することにしました。
conda create --name py35 --clone py350
環境名を変更するコマンドはないようなので、まずpy35という名前でpy350をコピーしました。
conda remove --name py350 --all
コピー元になったpy350を削除しました。
(root) pq@pq-VirtualBox:~$ conda env list # conda environments: # py35 /home/pq/anaconda3/envs/py35 root * /home/pq/anaconda3これでpy35の環境が作成できました。
(root) pq@pq-VirtualBox:~$ source activate py35 (py35) pq@pq-VirtualBox:~$ python3 -V Python 3.5.3 :: Anaconda custom (32-bit) (py35) pq@pq-VirtualBox:~$ jupyter notebookjupyter notebook
これでJupyter Notebookが起動できます。
しかしいちいちAnacondaの環境を立ち上げるのは面倒なので、linuxBean14.04(72)Anacondaで科学技術系Pythonパッケージを一括インストールするの時と同様に直接起動するランチャを作成しました。
/home/pq/anaconda3/envs/py35/bin/jupyter-notebook --notebook-dir=/home/pq/JupyterNotebook
コマンドはこのようにpy35の環境のjupyter-notebookを/home/pq/JupyterNotebookフォルダで起動するようにしました。
#!/bin/bash file_path=$1 cd ${file_path%/*} export PATH=~/anaconda3/envs/py35/bin:$PATH ~/anaconda3/envs/py35/bin/jupyter nbconvert --template basic $1
linuxBean14.04(87)ipynbファイルをnbconvertするシェルスクリプトで作成したipynb_basic_convert.shもこのように書き換えました。
参考にしたサイト
Download Anaconda Now! | Continuum
Anaconda自体をアップグレードするコマンドはわかりませんでした。
python - How can I rename conda environment? - Stack Overflow
condaの環境名を変更する方法はないようです。
0 件のコメント:
コメントを投稿