Pythonパッケージは多くのディストリビューションのリポジトリでホストされています。読んだ後これチュートリアル、特に「本当にこれを行いますか?」というタイトルのセクションでは、pipを使用しないでシステムリポジトリを使用することを好み、リポジトリにないパッケージをインストールする必要がある場合にのみpipを使用しました。
しかし、これは一貫性のないインストール方法なので、単にpipを使用するのが良いでしょうか?両方の場所で利用可能なパッケージにシステム独自のリポジトリの代わりにpipを使用すると、どのような利点/欠点がありますか?
リンクステータスを含めました
常に標準のDebian / NeuroDebianパッケージを使用する利点は、これらのパッケージが互いに互換性を確保するために慎重にテストされることです。 Debian パッケージは他のライブラリへの依存関係を文書化するため、インストール中に必要なライブラリを常に取得できます。
私はアーチを使用しています。 aptに加えて、他のパッケージ管理システムでも同じですか?
ベストアンサー1
私の考えでは、Pythonモジュール(システムモジュールでもユーザーモジュールでも)を使用してシステムにインストールすることの主な欠点は、ディストリビューションpip
のパッケージ管理システムがそれについて知らないことです。つまり、それを必要とする他のパッケージでは使用されず、後でインストールしようとしている可能性があります(またはアップグレード後にモジュールの1つを使用し始めることもできます)。これにより、pip
両方のモジュールのリリース管理が終了します。問題を引き起こす可能性のあるバージョン(私はこの例はまたあります最近の)。したがって、あなたの質問は、最終的にすべてまたは専務の提案です。ただPythonモジュールの場合、pip
Pythonモジュールを使用するすべてのものに対してディストリビューションのパッケージマネージャを使用できなくなります。
あなたがリンクしたページに提供されている一般的なアドバイスはとても良いです。可能であれば、ディストリビューションパッケージをpip
パッケージ化されていないモジュールにのみ使用します。そうする場合は、システム全体ではなくユーザー設定でそれを実行してください。特にモジュール開発の場合は、可能であれば仮想環境を使用してください。特に、アーチでは、問題になる可能性があるディストリビューションでも、古いモジュールによって引き起こされる問題は発生しないでください。仮想環境ではこれを簡単に処理できます。
ディストリビューションのライブラリとモジュールパッケージが主にディストリビューションの他のパッケージで使用するためにパッケージ化されることを考慮することは価値があります。これらのパッケージを持つことは、そのライブラリとモジュールを使用して開発するための良い副作用ですが、これが主なユースケースではありません。