ラズパイにpyenv・Python3.7.0をインストールしてpyenv-virtualenvで仮想環境の構築!

公開日:2018-11-21
最終更新:2019-02-12
※この記事は外部サイト(http://doboku-it-engineer.com/programming/...)からのクロス投稿です

raspberry piにはPython 2.7.13とPython 3.5.3がインストールされておりますが、最新版ではありません。

また、パッケージ管理システムのpipはプリインストールされていませんし、仮想環境の構築に必要なモジュールもありません。

これらは開発環境を整える上で重要ですので、全てインストールしてしまいましょう!

ちなみに仮想環境の構築には様々なモジュールがありますが、今回はPython公式で推奨されているvenvまたはpyenv-virtualenvを利用していきます。

参考サイト様:pyenv と pyenv-virtualenv で環境構築

pyenv・Python3.7.0のインストール

# 現在のディレクトリを確認  
$ pwd  

/home/pi

git cloneコマンドでclone(リポジトリの複製)を行います。

git clone ○○ ~/△△

○○:githubのURL
△△:保存先

のように指定してダウンロードします

# 今回はカレントディレクトリに.pyenvというディレクトリを作成して、そこにダウンロード  
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

LinuxにSSHでログインすると、.bash_profileが実行されるようなのですが、自分の環境では.bash_profileが存在しなかっため、ファイルを作成し、編集していきます。

参考:.bash_profileと.bashrcについて

# .bash_profileをカレントディレクトリに作成  
$ touch ~/.bash_profile  

# .bash_profileを編集  
$ sudo nano ~/.bash_profile  


# ~/.bash_profile  
source ~/.bashrc  
source ~/.profile

これでSSHでログインした際に~/.bashrc~/.profileが読み込まれるようになりました。

その次に同ディレクトリに存在する.profileに対してnanoコマンドで開いて以下を記述して、パスを通します。

記述後は「source」コマンドで再読み込みします

$ sudo nano ~/.profile
# .profileファイルに以下を追記  
export PYENV_ROOT="$HOME/.pyenv"  
export PATH="$PYENV_ROOT/bin:$PATH"  
eval "$(pyenv init -)"
$ source .profile

パスが通ると「pyenv」コマンドが使えるのでPython3.7.0をインストール。
この際、すぐにインストールしようとすると下記のようなエラーがでる。

BUILD FAILED (Raspbian 9.4 using python-build 1.2.7-1-g71902168)  

Inspect or clean up the working tree at /tmp/python-build.20180815100003.31236  
Results logged to /tmp/python-build.20180815100003.31236.log  

Last 10 log lines:  
  File "/tmp/tmp99t4uw01/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/__init__.py", line 42, in <module>  
  File "/tmp/tmp99t4uw01/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/cmdoptions.py", line 16, in <module>  
  File "/tmp/tmp99t4uw01/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/index.py", line 25, in <module>  
  File "/tmp/tmp99t4uw01/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/download.py", line 39, in <module>  
  File "/tmp/tmp99t4uw01/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in <module>  
  File "/tmp/python-build.20180815100003.31236/Python-3.7.0/Lib/ctypes/__init__.py", line 7, in <module>  
    from _ctypes import Union, Structure, Array  
ModuleNotFoundError: No module named '_ctypes'  
Makefile:1122: recipe for target 'install' failed  
make: *** [install] Error 1

pyenvで3.7系のインストールに失敗したときのメモのサイトを参考にして「libffi-dev」を先にインストールする。

$ sudo apt install libffi-dev
$ pyenv install 3.7.0

Pythonのバージョンの切り替え

$ pyenv global 3.7.0  

$ python -V  
Python 3.7.0

pyenv-virtualenvをインストール

そもそも仮想環境って?

そもそもPCでコマンドが使用できるのは/bin以下に使用したいコマンドのバイナリファイルがあるためです。普通に使用する分にはいわゆる普通のインストール(バイナリファイルが/bin以下に格納される)をすれば良いです。しかし/bin以下にインストールされたコマンドはシステム全体で利用されるためシステムのPython環境を汚染します。具体的にはライブラリのコンフリクト等が起きるのではないかと思われます。こういった事態を避けるためにシステムとはまた別の環境を作り、その環境にPythonをインストールすることでシステムのPython環境を汚染することなくPython環境を構築することができます。
Pythonの仮想環境構築

pyenvだけでも便利なのですが、プラグインであるpyenv-virtualenvもインストールしていきます。

pyenv-virtualenvは仮想環境の構築に使用されます。

pyenvではpipでインストールされたパッケージはPythonのバージョンごとに管理されていましたが、pyenv-virtualenvを利用すると同じバージョンでもディレクトリごとに別環境として利用することができ、環境を分けることが出来ます。

参考:pyenv と pyenv-virtualenv で環境構築

pyenv-virtualenvでディレクトリ単位のpython環境構築

# pyenv-virtualenvをインストール  
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv  

# .profileファイルに追記  
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.profile  

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.profile  

$ source ~/.profile

pyenv-virtualenvで仮想環境の構築する

# カレントディレクトリに移動  
$ cd  

# カレントディレクトリに○○というディレクトリを作成  
$ mkdir ~/○○  

# カレントディレクトリに仮想環境用のディレクトリ(○○)を作成  
pyenv virtualenv 3.7.0 ○○  

# 作成したディレクトリに移動すると仮想環境に入る  
$ cd ○○  
(〇〇)$

既存のディレクトリに仮想環境を構築するときはこう

$ cd 〇〇  

$ pyenv virtualenv 3.7.0 〇〇  

$ pyenv activate 〇〇

これで、ディレクトリを移動すると自動的に仮想環境が適用される。

ちなみに環境を削除する場合は以下を参照

# 構築した環境(○○)を削除する場合  
(○○)$ pyenv uninstall ○○

pipのアップグレード

pipは最新版のPythonをダウンロードすると一緒にインストールされますが、古いバージョンです。

pipはpythonで開発を行う上でほぼ必須のツールですので、最新版にアップグレードしていきましょう!

バージョンの確認

$ $ pip -V  
pip 10.0.1 from /home/○○/.pyenv/versions/3.7.0/lib/python3.7/site-packages/pip (python 3.7)

pipのアップグレード

$ pip install --upgrade pip  
Collecting pip  
...  
Successfully installed pip-18.1

バージョン確認

$ pip -V  
pip 18.1 from /home/○○/.pyenv/versions/3.7.0/lib/python3.7/site-packages/pip (python 3.7)

以上でラズパイでの環境構築はおわりです!
お疲れ様でした!

記事が少しでもいいなと思ったらクラップを送ってみよう!
36
+1
@nokonoko1203の技術ブログ

よく一緒に読まれている記事

2件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
11/23 17:51

ラズパイってPython3系入れたら python3 -m venvで仮想環境作れませんでしたっけ?

記憶違いでしたら申し訳ないです!m(_ _)m

11/25 22:34

コメントありがとうございます!!

自分の勘違いで、Pythonをインストールした段階でvenvで仮想環境作れるみたいです!!

記事を修正しました!

目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする