カタカタブログスマートフォン用の表示で見るカタカタブログSIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Linuxが中心です。数学やデータ分析なども。機械学習はじめにpipenvインストールJupyterデータ分析用環境構築データ分析用ライブラリインストールmatplotlibのimportエラーのため、設定変更まとめはじめにmac上にpipenvによる仮想環境を作り、Jupyterによるデータ分析用Python環境を構築してみたので、そのときの構築手順をメモする。Jupyterによるデータ分析は、Anacondaをインストールしてそこで行っていた。簡単なデータ分析だけをするうちは特に問題なかったが、そのうちFlaskでWebアプリケーションを開発したり、それをHerokuにデプロイするために仮想環境を作ったりしていると依存ライブラリの管理をする上でAnacondaがグローバルにあるのが面倒に感じるようになった。そのため、Anacondaをアンインストールしいったんきれいな状態に戻した上で、pipenvを導入することにした。これにより、Webアプリ用の仮想環境と同じように、jupyterデータ分析用の仮想環境を同列に管理できるようにした。依存ライブラリをPipfileとして、各データ分析プロジェクトや各アプリケーションプロジェクト用に用意して管理することが目的。今回検証に用いた各種バージョンは以下の通り。2018.5.18pipenvインストールまず、作業前の状態を確認しておく。2.7が使える状態となっているため、まずPython3をインストールする。Python3はHomebrewでインストールする。pip3コマンドが使えるようになった。python3/usr/local/bin/python3pip3でpipenvをインストールする。pipenvpipenvコマンドが実行できるようになった。2018.05.18Jupyterデータ分析用環境構築データ分析を行うためのプロジェクトをjupyter_notebooksとし、プロジェクト用ディレクトリを作成する。/Users/dev/jupyter_notebookspipenvで仮想環境を作成する。projectと表示され、virtualenvで仮想環境が作成されていることが分かる。コマンドを打つとactivateもされるため、仮想環境に入った状態となる。プロンプトに(jupyter_notebooks-q86MIwox)と仮想環境名が表示されていることが分かる。shellコマンドを実行する。抜ける場合はexitすると抜けられる。データ分析用ライブラリインストールanacondaを使っていたときはだいたい必要なライブラリが導入済みだったが、今回は一から仮想環境を作っているのでとりあえず分析に必須な定番ライブラリとしてここでは以下をインストールする(他にも必要なものがあれば都度追加する)。jupyternumpyscipypandasscikit-learnkerastensorflowmatplotlibseaborn仮想環境に入った状態で、pipenvで以下のようにインストールする。seaborn正常にインストールできればOK。以下のコマンドでJupyterが起動し、Pythonやインストールしたライブラリが使用できることを確認する。今回実施したところ当環境では、Pythonからmatplotlib.pyplotをimportするコードを実行すると下記のようなエラーが発生してしまった。'rcParams'rcParamsのImportErrorが発生している。調べたところ、以下の記事の内容とエラーメッセージは違うものの、同じ対応方法で解消できた。https://qiita.com/Kodaira_/items/1a3b801c7a5a41c9ce49まずmatplotlibrcファイルの場所を検索する。matplotlib;print(matplotlib.matplotlib_fname())"/Users/dev/.local/share/virtualenvs/jupyter_notebooks-q86MIwox/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc上記matplotlibrcファイルを開き、以下のように編集する。Tkaggこの変更後、正常にmatplotlib.pyplotがimportできるようになった。まとめmacでJupyterによるPythonデータ分析環境をpipenvを用いて構築した。anacondaを使うと簡単に必要なものが一括で導入されて便利だったが、Flask等Webプロジェクトと共存する上では面倒だった。はてなブログPro東京のSIerで働くITエンジニアです。Linux、開発言語はJava、PL/SQL、bashが多いです。Piなどにも興味を持っています。最近は統計やデータマイニング、機械学習などの勉強も始めました。(1)月別アーカイブ検索スポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。