質問: **Q1.yumでインストールしたbeautifulsoup4が、ソースからコンパイルしたPython3.6で認識できませんでした。どういう原因が考えられるでしょうか?** ・yumでインストールしたbeautifulsoupは、yumでインストールしたPythonでしか使用不可? ・yumでインストールしたbeautifulsoupのバージョン(4.1)が、Python3.6未対応? ・何かのパスがおかしい? ※最終的にはpip3.6でインストールし直したので正常動作しています --- **Q2.yumは依存性を解決してくれるので極力利用した方が良い、という認識でいたのですが、Pythonには当てはまらない?** ・Pythonの依存性解決はpip? --- **Q3.pip3.6は、Pythonバージョンに連動?** ・pip3.6コマンドだけ使用できるのですが、これはPythonバージョンに連動しているのでしょうか? ・pip3.6コマンドでインストールしたライブラリは、(パス等が自動的に設定され?)Python3.6で動作することが保証されている、ということでしょうか? ・ネットで「Python 3ではpipコマンドと同じ動作をするpip3コマンド」と書いてあったのですが、Python 3.X系なのになぜ使用できないのでしょうか? ・Python3.6は他と何か違う?? ``` $ pip ``` > > -bash: pip: コマンドが見つかりません > > > ``` $ pip3 ``` > > -bash: pip3: コマンドが見つかりません > > > ``` $ pip3.6 ``` > > Usage: pip [options] > > >
回答: ディストリビューション・バージョンがわかりませんが、yum ということですので、RHEL/CentOS/Fedora を想定して回答します。 > > Q1.yumでインストールしたbeautifulsoup4が、ソースからコンパイルしたPython3.6で認識できませんでした。どういう原因が考えられるでしょうか? > > > yum で提供されている beautifulsoup4 が、違うバージョンの Python 用なのではないでしょうか。 例えば、EPEL で提供されている python-beautifulsoup4 をインストールすると、/usr/lib/python2.7/site-packages/bs4/ 以下に配置され、python-2.7 では利用できますが、python-3.6 では利用できないものと思われます。 > > Q2.yumは依存性を解決してくれるので極力利用した方が良い、という認識でいたのですが、Pythonには当てはまらない? > > > yum の base, updates で提供されている python パッケージは、OS 標準の python-2.7 用に作成されていますが、すべての python パッケージが用意されているわけではありませんし、バージョンが古い場合があります。 また、SCL, EPEL, IUS などのリポジトリを追加すれば、`python34`, `python36u` といった、別のバージョンをインストールできますが、これらのリポジトリからインストールできる python パッケージは、base, updates と同様に、リポジトリで提供されている python 用に作成されたものです。 したがって、python 本体を yum リポジトリからインストールし、かつ、そのバージョンに合った python パッケージが用意されているのであれば、yum でインストールすることができます。 そうでなければ、pip などで、yum とは別の方法でインストールする必要があります。 > > Q3.pip3.6は、Pythonバージョンに連動? > > > pip3.6 でパッケージをインストールすると、python 3.6 用のものがインストールされます。 python 3.6 のライブラリディレクトリの下の site-packages/ にインストールされると思います。 pip3.6 は実行できて、pip3 が実行できないのは、そのようにインストールしたからとしかいえませんが、pip3 -> pip3.6 とシンボリックリンクを作成すればいいのではないでしょうか。