web-dev-qa-db-ja.com

pipをインストールするにはpython-devが必要ですか?

Python-devがインストールされていないため、多くの人がpipでpythonパッケージをインストールするのに問題があることがわかりました。主にエラー:

fatal error: Python.h: No such file or directory

だから質問:python-devはpipの必須の依存関係である必要がありますか?または、これはpipでインストールされている特定のパッケージの問題にすぎませんか?その場合、モジュールのインストール時にユーザーがエラーに遭遇しないようにするための特定の手順はありますか?

14
hansonap

これは実際にはStackOverflowに属しているとは思いませんが、間違っている場合は…

まず、python-devはPythonのものではなく、Ubuntu、Fedora、またはその他のディストリビューションのものです。Pythonをダウンロード、ビルド、インストールするか、Pythonからバイナリインストーラーを実行する場合.orgでは、Python.hが適切な場所にインストールされます。多くのLinuxディストリビューションは、パッケージをサブパッケージに分割し、ビルドに必要なものを-devまたは同様のパッケージに移動することを好みますが、まったく問題はありませんPythonに対してそれを行っていますが、それでもディストリビューションが行っていることです。

次に、Python.hは、すべてのパッケージをビルドするために必要なわけではなく、C拡張モジュールを含むパッケージだけが必要です。多くのパッケージは純粋なPythonであり、そのような拡張モジュールがないため、ディストリビューションのpipパッケージがそのpython-devパッケージを必要としないことは理にかなっています。 (ディストリビューションのpipパッケージがおそらくCコンパイラを必要としないのと同じように。)

第三に、python-pipまたは同様のパッケージを提供するほとんどのディストリビューションは、人気のあるパッケージのパッケージも提供します。それらをそのようにインストールする場合、それらはバイナリパッケージであるため、python-dev(およびCコンパイラ)は必要ありません。または、それらは必要ですが、依存関係(rpm、 debなどにはすべて、個別の「ビルド」と「実行」の依存関係を指定する方法があります。

しかし、パッケージマネージャーの後ろに隠れて、pipを使用してパッケージをインストールしようとすると(これは合理的な方法です)、パッケージマネージャーはどのパッケージにどの依存関係が必要かを教えてくれませんが、pipはPythonパッケージの依存関係についてしか教えてくれないので、これを強制するものは何もありません。

19
abarnert