プログラミングや電子工作などについての記事がほとんどです

オライリーの「入門ソーシャルデータ」の開発環境導入におけるエラー解決法

0 件のコメント

予想以上にハマった

先日、ちょっと自然言語処理の勉強をしてみたいと思い入門 ソーシャルデータ 第2版を読み始めました。PythonでガンガンWebAPIを叩いて解析していくというような内容なので、環境構築がすごく大事になってきます。

この書籍の革新的なところは環境構築を仮想マシンを作って均質化を図っているところです。使っている技術もそれなりにモダンで、VagrantChefを使って諸々のソフトウェアのインストールを自動化しています。しかもVagrantfileをはじめとしたデータはGitHubのリポジトリで管理されています。この時点ではとても感動してテンションぶち上げでした。

この環境構築方法は書籍の「付録A 本書の仮想マシンについて」のところでIPython Notebookを導入する方法として詳しく書かれています。

vagrant up、そのとき事件は起こった

意気揚々とgit clone ほげほげを実行した後、vagrant upと入力しエンターキーを力強く叩いたのですが、たくさんエラーが出てきました。

vagrantでエラーが出るのはそれなりにしょっちゅうあることなのでそんなに簡単には動じません。ググッて解決法を模索します。しかしそれが解決したのは次の日のこと。いわゆるハマったというやつです。

同じような境遇の人はたくさんいるらしく、GitHubリポジトリには「環境構築ができません><」という旨のIssueが乱立しています。これには著者のMatthewさんもタジタジです。でも似たような投稿があってもMatthewさんは丁寧に答えていました。人間が出来ている素晴らしい方なんだと思いました。
Issues · ptwobrussell/Mining-the-Social-Web-2nd-Edition

結論としては、Issueを読み漁ってもなかなか解決できなかったです。もちろんIssueのやりとりで助かった部分もあったのですが、それだけではどうにもならないことも幾つかありました。

生じたエラーたち

数時間奮闘した結果、なんとか解決できたのでシェアします。不幸な人が現れませんように。

Yosemite以降の方のusrディレクトリ管理権限問題

Mac - Yosemiteでbrewが壊れた - Qiitaの記事などに見られるように、YosemiteやEl Capitanでは/usrディレクトリにまつわる諸々の問題が生じるようです。そこで、お目当てのpythonが使えるようにシンボリックリンクを張ってやりましょう。これで安心です。

vagrant ssh
sudo ln -s /usr/bin/python /bin/python

この方法は主に公式GitHubのIssueで挙げられていました。
Python issue installing VM · Issue #243 · ptwobrussell/Mining-the-Social-Web-2nd-Edition

get-pip.pyが実行できません的な

get-pip.pyが実行出来ないなら仕方ないのでインストールしてあげましょう。ひょっとしたら取得先が更新されてるかもしれません。
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python

Insecure Platform Warningと出て怒られる

セキュリティ上問題があるのでsslでうまいことやれという旨のお叱りがきます。ありがたいことにQiitaにずばりという回答があったので仰せのままにすると改善されました。

sudo apt-get install yum (いらないかも)
yum install -y openssl-devel python-devel libffi-devel (いらないかも)
pip install SoftLayer requests==2.5.3

参考
SoftLayer - Python実行時にInsecurePlatformWarningが出る場合の対応方法 - Qiita

早く解決したい人のためのまとめ

vagrant up
なんかいっぱいエラーでる
vagrant ssh
sudo ln -s /usr/bin/python /bin/python
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python
(sudo apt-get install yum)
(yum install -y openssl-devel python-devel libffi-devel)
pip install SoftLayer requests==2.5.3
logout
vagrant reload
vagrant provision

これで上手く行かなかったら、vagrant destroyして深呼吸して一からやり直してみるのも一つの手です。私も3回くらいdestroyしてマシンを潰した結果うまくいきました。

まとめ

うまくいくかはわかりませんが、解決の一助になれば幸いです。私は1日目に解決することを投げかけ、危うくデータマイニングの勉強機会を損ねる所でした。みなさんは本質でない環境構築にストレスを感じずすぐに取り組めるよう願っています。

入門 ソーシャルデータ 第2版 ―ソーシャルウェブのデータマイニング
Matthew A. Russell
オライリージャパン
売り上げランキング: 159,645

0 件のコメント :

コメントを投稿