UbuntuでPythonのモジュールをインストールしたいとき、aptとpipのどちらを使って入れようか?と思った話

 さて趣味程度にぽちぽちとPythonでプログラミングをしているのですが、以前から気になっていた疑問が一つ。
  • Pythonでインストールされていないモジュールを使いたいときに、どんな方法でインストールすればよいか
というのを考えていました。
(以下、Ubuntuを使うという前提で話を進めていきます)

代表的なモジュールならUbuntuのリポジトリに用意されているので、aptを使ってインストールすることが出来ます。 そしてPython自体もpipという独自のパッケージ管理システムを持っています。pipを使ったインストールではPyPI(Python Package Index)というリポジトリを参照するようです。

本格的にPythonでプログラミングをする場合は、膨大なパッケージがあるpipを使った方が良さそうです。Ubuntuのaptでインストール出来るものは代表的なものは揃っているのですが、それでもpipよりは限られています。

またaptとpipではインストールのされ方が異なってきます。まずaptではスーパーユーザーでインストールするため、システム領域にインストールされることになります。一方pipではユーザー環境にもインストールすることが出来ます。

それとPythonを仮想環境(venvなど)で動かす場合はpipは欠かせません。環境を分離するための仮想環境なので、必要なパッケージは個別にインストールする必要があり、それにはaptでのインストールは向いていないためです。 

さて、パッケージの数、インストールのされ方、仮想環境での使用について見てきましたが、ではaptとpipのどちらを使うのがいいのでしょうか?特にどちらかというのは気にしないで両方とも使って必要なものをその都度インストールしていく、というのは後々面倒を抱えることになってしまいます。インストールしたパッケージがどちらのパッケージ管理システムをちゃんと把握できていればいいのですが、適当にインストールしているとそのへんがおざなりになりがちです。
一見してpipでインストールした方がいいように思うのですが、aptではUbuntuのリポジトリからインストールされるのでそれはそれで安心感はあります。

個人的にはシステム側のPythonと分けるために仮想環境を構築して、そこでpipによってパッケージ管理をしていくのが良さそうかな思っています。ただシステム側のPythonを使う場面もいろいろあるので、システム側で必要となったパッケージについてはaptで入れていくのがいいかと思います。
  • システム側のPython : apt
  • 仮想環境のPython : pip
という使い分けで行こうかなと。

参考



コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)