最もパイソン的なのはどれですか:パッケージマネージャー (macports、apt) または pip/easy_install/setuptools 経由で Python モジュールをインストールする

StackOverflow https://stackoverflow.com/questions/1559372

質問

通常、Unixy のものについては、パッケージ マネージャーを介してインストールすることが多いです。ただし、多くの Perl をプログラミングするときは、CPAN や新しいバージョンなどを使用していました。

一般に、私はシステムのものをパッケージマネージャー経由でインストールし、言語のものを独自のパッケージマネージャー ( gem/easy_install |pip/cpan ) 経由でインストールしていました。

現在 Python を主に使用しているのですが、ベストプラクティスは何なのか疑問に思っています。

役に立ちましたか?

解決

システム Python バージョンとそのライブラリは、ディストリビューション内のソフトウェアによってよく使用されます。使用しているソフトウェアがディストリビューションと同じバージョンの Python とすべてのライブラリに満足している限り、ディストリビューション パッケージを使用しても問題なく動作します。

ただし、多くの場合、パッケージの開発バージョン、新しいバージョン、または古いバージョンが必要になります。そして、それはもう機能しません。

したがって、通常は、開発に使用する独自の Python バージョンをインストールし、次のような開発環境を作成することをお勧めします。 ビルドアウト または 仮想環境 またはその両方で、システム Python と開発環境を相互に分離します。

他のヒント

完全に対立する 2 つの陣営があります。1 つはシステム提供のパッケージを支持するもの、もう 1 つは個別のインストールを支持するものです。私は個人的に「システムパッケージ」派です。以下にそれぞれの立場からの主張を述べます。

プロシステムパッケージ:システム パッケージャーは、依存関係と、システム全体のポリシー (ファイル レイアウトなど) への準拠をすでに考慮しています。システム パッケージは、互換性を損なわないように配慮しながらセキュリティ更新を提供します。そのため、上流の作成者がバックポートしなかったセキュリティ修正をバックポートすることがあります。システム パッケージは「安全」です。システムのアップグレード:システムのアップグレード後、おそらく新しい Python バージョンも存在しますが、システム パッケージャーから取得した Python モジュールはすべてまだ存在しています。以上が Debian に関する個人的な経験です。

コンシステムパッケージ:すべてのソフトウェアがシステム パッケージとして提供されるわけではない、または最新バージョンでは提供されない場合があります。自分でシステムにインストールすると、システム パッケージが壊れる可能性があります。アップグレードするとアプリケーションが壊れる可能性があります。

Pro の個別インストール:一部の人々 (特に Web アプリケーション開発者) は、必要なパッケージのみを備え、システム Python から完全に切り離された、反復可能なセットアップが絶対に必要であると主張します。これは、自己インストールと比較を超えています。システム パッケージ。自己インストールの場合でも、システム Python を変更する可能性があるためです。個別にインストールする場合は、そのようなことはありません。Lennart が説明しているように、現在、このセットアップをサポートする専用のツール チェーンが存在します。このアプローチだけが再現性のある結果を保証できると主張する人もいます。

別途インストールの場合:バグ修正には自分で対処する必要があり、すべてのユーザーが個別のインストールを使用するようにする必要があります。Web アプリケーションの場合、後者は通常、簡単に実現できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top