(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) |
まずは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 |
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 |
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 - - all |
これで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 |
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 '] |
/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' |
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' |
久しぶりに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 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 |
(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 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 件のコメント:
コメントを投稿