pyenv/pyenv-virtualenv/MiniForgeを使ったLinuxのPython環境構築
はじめに(LinuxのPython環境構築)
この記事では、pyenv/pyenv-virtualenv/miniforgeを使ったLinuxでのPython環境構築に関して説明します。
「これがオススメ!」とか「2021年決定版」みたいな記事ではありません。ビジネスで使う人も想定してなくて「とりあえずデモをローカル環境で最短で動かしたい!」というホビーユース向け記事です。
「今更pyenv?プププ」と思っている人も多いでしょう。私自身、Docker使ったり、Apple Silicon MacでTensorFlow動かすためにMiniForgeを入れたりと紆余曲折を経て、いつの間にかpyenvに戻って来てしまいました。
「何故こんなことに…」という感じなのですが、戻ってきてしまったものは仕方ないです。なんだかんだで、ローカル環境で手軽にAI関係のカメラ関係のデモをパパっと動かすとき、pyenv/pyenv-virtualenv/MiniForgeの組み合わせは有用なんじゃないかと思います。
pyenvに関しては、昔以下のような記事も書いたのですが、改めてLinuxに特化して使い方などを書きたいと思います(Macの方はApple Siliconでの環境構築に疲れたので一時休止です)。
Dockerで環境構築したい(ディープラーニング含めて)という人は、以下記事参照ください。
Pythonのパッケージ管理ソフトの歴史的背景を知りたいという方は、@vaaaaanquish さんの以下記事が参考になると思います。
pyenv/pyenv-virtualenv セットアップ
Linux(Ubuntu)マシンの前提です。PC自体のハードウェア情報や、基本的なOSのセットアップ方法は以下記事参照ください。
Ubuntuをセットアップしたら、以下コマンドでgit
とcurl
をインストールしましょう(入っていればここは飛ばしてOKです)。
$ sudo apt update
$ sudo apt -y install git
$ sudo apt -y install curl
続いて、以下コマンドを実行すればセットアップできます。
$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-pyenv.sh | /bin/bash
スクリプトで何をしているかは、スクリプトの中身や以下記事を参照ください(基本的に以下記事のセットアップ手順をスクリプト化しただけです)。
pyenvの使い方
早速pyenvを使っていきましょう。以下pyenvのコマンドでインストールできるPythonのバージョン(パッケージ)のリストを表示します。
$ pyenv install -l
リストの中から、好きなPython環境をインストールしましょう。例えば Python3.8.12なら以下です。
$ pyenv install 3.8.12
インストールが完了したら、仮想環境に入りましょう。インストールされている環境の一覧はpyenv versions
で以下のように表示できます。先程インストールした 3.8.12が表示されていますね。
$ pyenv versions
* system (set by /home/karaage/.pyenv/version)
3.8.12
環境を切り替えたい場合は、以下のようにコマンドで指定します。
$ pyenv global 3.8.12
ディレクトリ(フォルダ)を限定して環境を切り替えたい場合は、以下のようにglobal
の代わりにlocal
を使います。
$ pyenv local 3.8.12
こうすると指定したディレクトリから抜けるとglobal
で指定した環境に自動的に切り替わり、再度指定したディレクトリに移動すると、local
で指定した環境に切り替わります。
pyenv-virtualenvの使い方
同じPythonのバージョンでさらにバージョンを分けたい場合は、pyenv-virtualenvで以下のように仮想環境をどんどんつくって切り替えることができます。
私は、基本的にこうやってどんどん使い捨ての仮想環境を作っています。
$ pyenv install 3.8.12
$ pyenv virtualenv 3.8.12 test
$ pyenv global 3.8.12/envs/test
pyenvでのMiniForgeのセットアップ
PythonのパッケージツールとしてAnacondaを好む人もいると思います。Anacondaは邪道(使うな)という人もいますが、ここではその議論は置いておきます(詳しくは冒頭でリンクした歴史的経緯のページなどを参照ください)。
個人的には使いたければ、便利なものは使えば良いかと思います。ただ、Anacondaは商用だと有償化していたりします。個人向けには同じくAnaconda系のMiniForgeが良いのではないかと思います。ちなみに、私はApple Silicon MacでMiniForgeを使わないとTensorFlowを動かせなかったりするので、Macと手順を共通化するためにMiniForgeを使ったりします。なので、Linux単体だと、個人的にはMiniForgeを使う嬉しさはそれほどないかもしれません。
MiniForge単体で使用する方法は、以下記事参照ください。
pyenvで使う場合は、以下コマンドでMiniForgeをセットアップして環境を設定します。
$ pyenv install miniforge3-4.10.1-5
$ pyenv global miniforge3-4.10.1-5
MiniForge上で仮想環境をつくる場合は、以下コマンドを使います。
$ conda create --name ml python=3.8
以下コマンドでアクティベートしましょう。
$ conda activate ml
pyenvにMiniForgeが重なるとちょっとややこしいですが、MiniForgeに切り替えたあとの操作は、基本的には単体のMiniForgeと同じです(多分)。
ライブラリのインストール方法
普通にpipで入れていけばOKです。condaに関しては省略(あんまり詳しくないのと、基本的に私はpipで入れてしまいます)。
pip install xxx
みたいな入れ方は非推奨らしいので、以下のようなコマンドで入れていきます。
$ python3 -m pip install numpy
pyenvアンインストール方法
アンインストールする場合は、以下コマンドで削除しましょう。
$ rm -rf ~/.pyenv
合わせて~/.bashrc
に書かれたpyenv関係の設定も削除しておきましょう。
pipenv
pipenvというものもありますが、今回は触れません。興味ある人は調べてみてください。
pyenvなどとは微妙に役割が違います(すみません、うまく説明できるほど理解していないです)。
公式が推奨しているので、最近は勧める人が多い印象です。pyenvと合わせて使うことも可能だと思います。
まとめ
pyenv/pyenv-virtualenv/MiniForgeを今更まとめてしまいました。
ちなみにPythonやAI(ディープラーニング)を初心者が学習するなら、クラウド上で環境構築無しで無料で使えるGoogle Colaboratoryをおすすめします。
AI初学者の方は、Google Colaboratoryと合わせて、以下の書籍もおすすめです(宣伝です!)
書籍を読めば、Google Colaboratoryで学習させた画像認識のAIモデルをカメラをつないだローカルのPC上でデモするといった使い方も可能となります。その際、pyenvといったPythonの仮想環境の構築ノウハウは強い味方になると思います。
参考リンク
関連記事
Discussion