Raspberry PiでのPython 3.5環境構築
ゼルダのごまだれ宝箱作成の際に、「例えば台座に仕込んでMP3とか鳴らしたら豪華になるかな?」とか思い、裏でこっそりRaspberry Pi Model A+を手に入れていました。結局使わなかったのですが、せっかくなのでセットアップしてみました。
初めて使いますが、コンパクトで良いですね。最近発表されたRaspberry Pi 3 Model Bもとても楽しみですが、これから発表されるであろうRaspberry Pi 3 Model Aに期待大です。
OSはNOOBS Ver 1.7.0を使ってRaspbianを入れました。Pythonのバージョンを確認してみますと、
$ python -V Python 2.7.9
デフォルトは相変わらず2.7系です。そろそろ3系を使っても不便はなくなってきている気がするので、今回は現時点で最新の3.5.1をRaspberry Piに入れたいと思います。
手順はほぼ以下の記事そのままです。
では早速。まずはベースのアップデートをしてから、Pythonのビルドに必要なものをインストール。
$ sudo apt-get update $ sudo apt-get upgrade -y $ sudo apt-get dist-upgrade $ sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libbz2-dev libreadline-dev
それからPythonのバージョンを使い分けできるように、pyenvというものを突っ込みます。
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile $ echo 'eval "$(pyenv init -)"' >> ~/.profile $ source ~/.profile
ではでは、Python 3.5.1を突っ込みます。
$ pyenv install 3.5.1 Downloading Python-3.5.1.tgz... -> https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz Installing Python-3.5.1... Installed Python-3.5.1 to /home/pi/.pyenv/versions/3.5.1
非力なModel A+でやってしまったせいか、インストールに1時間ぐらいかかってしまいました。
さて、ここまでやっただけではデフォルトのPythonは2.7.9のままなので、デフォルトを3.5.1に切り替えます。
$ python -V Python 2.7.9 $ pyenv global 3.5.1 $ python -V Python 3.5.1
globalの代わりにshellを指定すれば、現在利用中のシェルでのみ指定したバージョンが有効になり、localを指定すればカレントディレクトリでのみそのバージョンが適用されるようです。プロジェクトごとにバージョン変えたい時には便利ですね。globalとlocalは再起動したときでも有効です。
あとは、個人的に使いそうなモジュールとかを色々突っ込んでおきます。
WiringPi
$ git clone git://git.drogon.net/wiringPi $ cd wiringPi/ $ ./build $ cd $ git clone https://github.com/Gadgetoid/WiringPi2-Python.git $ cd WiringPi2-Python $ sudo python3 setup.py install
GPIOとかPWMとかを色々扱いやすくするため。PythonからWiringPiを利用するためのツールも一緒に突っ込んでいます。
Requests
$ pip install requests
Web APIを叩く時にとてもよく使うので。
Pyserial
$ pip install pyserial
Arduinoとのシリアル通信とかで使う可能性があるので。
bottle
$ easy_install -U bottle
PythonのWebサーバ用フレームワーク。Pythonが集めた情報をREST APIでHTTPリクエストで取得できるようにしておくと、何かと便利です。個人的には、Tomcatとかよりシンプルで扱いやすいと思うので、電子工作向きかなと。
I2C
$ sudo apt-get install i2c-tools $ sudo apt-get install python-smbus
ついでに、I2Cもなんやかんやでよく使うので。Arduinoとの連携にも使えますし。
とりあえずこんなとこでしょうか。pyenvというのは今回初めて知りましたが、何かあったらすぐに2.7系に戻せるので便利ですね。
ディスカッション
コメント一覧
Raspberry PiにPython3.6は入れられないでしょうか?
山田様
申し訳ありません、私もPython 3.6は試したことがないので、わかりません。。。
パッと思いつくのは、『Anacondaを入れられれば、そこからPython 3.6環境を作れないかな?』というものですが、少し調べたところ、Raspberry PiだとAnacondaは入れられなくて、Minicondaなら何とか入れられるようですね。そこからPython 3.6環境を作れるかも。。。と思うのですが、試したことがないので、確かなことが言えません。申し訳ありません。
現状、minicondaでは3.4までしか入りません。
Berry CondaというRaspBerry Pi用のディストリビューションを使えば簡単に入ります。
saragai様
おお、それは知りませんでした! 大変有益な情報をありがとうございます!
ピンバック & トラックバック一覧
[…] 系じゃないとダメ」というシーンはだいぶなくなってきていると思うし、今後のことも考慮して、自力で3.5系に上げました。そのやり方については、過去に書いた記事をご参照ください。 […]