Raspberry PiでのPython 3.5環境構築

th_raspi-a

ゼルダのごまだれ宝箱作成の際に、「例えば台座に仕込んで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系に戻せるので便利ですね。