ラズパイでPython開発環境を整えるにあたってpyenvとそのプラグインであるpyenv-virtualenvをインストールしました。ただPythonを勉強するだけなら始めのうちは仮想環境を作成する必要はないそうです。ラズパイで書けるようなレベルのPythonでは仮想環境の作成を行う必要性はかなり低そうです。ラズパイならSDごと書き換えなおせばいいですしね。しかし僕は形から入るタイプの人間なので仮想環境も作成できるようにしておきました。
Python環境の構築、とくに仮想環境系のことについて調べていると、pyenvやvenvなどを混同するような説明が多くどれを選べばよいのかよくわからなくなりました。
調べてわかったことを簡単にまとめます。(間違ってたらごめんなさい)ここでいう環境はsite-packagesにpipでインストールされるライブラリなどのことです。
venv:環境を個々に作成し管理できるツール。バージョンによってはPythonをインストールすると自動でこのツールが付いている。
virtualenv:venvと同様な機能を持つツール。
pyenv:環境をPythonのバージョンごとで管理可能なツール。これを使えば複数バージョンのPythonをインストール可能。
pyenv-virtualenv:pyenvのプラグイン。pyenvにvenvやvirtualenvのような環境管理機能を追加できる。
pyenvをインストール
まずはpyenv動作に必要なパッケージをインストールします。
$ sudo apt-get install -y git openssl
libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
git cloneコマンドでgithub上にあるpyenvをダウンロードします。
$ git clone
https://github.com/yyuu/pyenv.git ~/.pyenv
ホームディレクトリの.profileの内容にnanoやvi等のテキストエディタで以下の記述を追加します。
#pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
sourceコマンドで設定を反映します。
$ source ~/.profile
これでpyenvコマンドが使えるようになりました。インストール可能なPythonのバージョンを確認してみます。
$ pyenv install –list
Python最新安定バージョンをpyenvでインストール
pyenvをインストールしたのでPythonの各バージョンごとに環境をわけることができるようになりました。現在最新の安定板であるPython3.7.2をインストールしてみます。
まずは、Python3.7系にはlibffi-devが必要らしいのでインストールします。
$ sudo apt-get install libffi-dev
libffi-devがインストールできたらpyenvコマンドでPython3.7.2をインストールします。回線速度にもよると思いますが僕は14分位で終わりました。
$ pyenv install 3.7.2
pyenv globalでPython3.7.2に切り替えてみます。このコマンドではglobalつまりどのディレクトリにいてもこのコマンドで指定したPythonのバージョンが適用されます。
$ pyenv global 3.7.2
これでPythonのバージョンが切り替わりました。バージョンを確認してみます。
$
python –V
電源を落としてもpyenvで設定したバージョンが適用されます。
Pythonをシステムのデフォルトのものに戻したいときは以下のコマンドで戻せます。
$ pyenv global system
pyenv環境のpipをアップグレードする
pyenvで3.7.2に切り替え後のpipバージョンを確認してみます。
$ python -m pip –V
pipのバージョンは18.1のようです。
pyenvで新たにインストールしたバージョンのPythonのpipをアップグレードします。
pipコマンドで直接アップグレードするとシステムのデフォルトPythonのpipがアップグレードされてしまいます。そのためpythonコマンドからpipをアップグレードします。
pyenvでpipをアップグレードしたいPythonバージョンに変更した後、以下コマンドを実行します。
$ python -m pip install --upgrade pip
pipのバージョンを最新の19.0.3にアップグレードできました。
ちなみに以下コマンドでpipをバージョンアップすると、pyenvでバージョンを切り替えていてもシステムのデフォルトPythonのpipがアップグレードされてしまいます。
$ sudo pip install --upgrade pip
pyenv-virtualenvをインストール
pyenv-virtualenvはpyenvのプラグインになります。
pyenvでは各Pythonバージョン単位で環境が管理されているため、pipで追加したパッケージ等も各Pythonバージョンごとに管理されています。しかしpyenv-virtualenvをインストールすることで、同Pythonバージョンでも別環境を作成できるようになり、同Pythonバージョンでもpipで追加したパッケージ等を別環境で管理することが可能になります。
git cloneコマンドでpyenv-virtualenvをダウンロードします。
$ git clone
https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
ホームディレクトリの.profileの内容にnanoやvi等のテキストエディタで以下の記述を追加します。
eval "$(pyenv virtualenv-init -)"
これでpyenv-virtualenvが使えるようになりました。
ためしにtestという名前の環境を作成してみます。
pyenv virtualenv バージョン名 環境名 で作成できます。作成完了までには1分位かかりました。
$ pyenv virtualenv 3.7.2 test
以下コマンドでpyenvで作成された環境を確認すると、バージョンごとの環境のほかに先ほど作成したtestという環境が作成されています。
$ pyenv versions
pyenv localで作成したtestという環境に切り替えます。このコマンドを使うとユーザー名の横に(環境名)が表示されるようになります。localなのでこのコマンドを実行したディレクトリ内でだけこの仮想環境が適用されます。
$ pyenv local test
仮想環境の適用を解除したければ、pyenv local systemでシステムのデフォルト環境に戻ります。
$ pyenv local system
作った環境を削除したければpyenv uninstall 環境名 で削除できます。pyenv-virtualenv: remove /home/pi/.pyenv/versions/バージョン名/envs/環境名? と表示されたら、yと入力しエンターを押せば削除が実行されます。
$ pyenv uninstall test
pyenv versionsで環境が削除されているのが確認できます。
覚えておきたいコマンドまとめ
pyenvでPythonのインストール$ pyenv install バージョン
仮想環境の作成
$ pyenv virtualenv バージョン 環境名
現在のディレクトリに仮想環境を適用
$ pyenv local 環境名もしくはバージョン
全体に仮想環境を適用
$ pyenv global 環境名もしくはバージョン
システムの環境に戻す
$ pyenv localもしくはglobal system
0 件のコメント:
コメントを投稿