回答:
いくつかの引数があります:
これはほとんど真実です。たとえば、python-django
私が持っているようにインストールすると、セキュリティ更新プログラムを入手できます。これは良いことです。aptを把握するだけでよいのですが、更新をプッシュする前にテストする必要があります(テストは毎回うまくいくはずです)。
を使用した場合pip
、更新プログラムをチェックしない可能性があると主張できます。
pip
あなたが適切な「安定」バージョンを使用できるように。それについて疑いの余地はありません。リポジトリは実世界に遅れをとっています。Djangoは2.0ですが、UbuntuのLTSバージョン(多くの人がサーバーに固執している)のリポジトリは、Python 2を搭載したUbuntu 16.4 ltsでは1.8しか取得できませんが、それでもセキュリティ更新プログラムは取得できます。
pip
常に最新の情報を提供します。自分で更新する必要があります。
Ubuntuを次のバージョンにdist-upgradeすると、多くのパッケージがアップグレードされます。多くのことが変わります。Djangoでは、これは、コードの非互換性、廃止予定に注意する必要があることを意味しますが、他のすべてのPythonコードにも同じことが当てはまります。
用も同様ですpip
が、とpip
一度に一つのことをやってもらいます。問題の原因を知っているので、修正箇所を探す場所を知ることができます。
pip
+ virtualenv
物事を分けておくことができますvirtualenv
移植可能な、小さなPython環境を使用できます。これにより、同じマシン上でいくつかの異なるPython環境を並行して実行できます。
コードを管理するのと同じ方法で環境を管理できるので、明らかな恩恵はメンテナンスのようです。環境もVCSに保存します... しかし、 12個の異なるvirtualenv
sがあるということは、チェックと更新が必要な12個の環境を意味することを覚えておいてください。
編集:サーバー上で恐ろしい一連のアップグレードを行ってLucidからPreciseに変更した後、Apt + pipが混在する(nr 1および2)から純粋なpip + virtualenv(nr。4)の状況に切り替えました。サイトごとに1つのvirtualenvを使用する代わりに、1ダースほどのサイト間で1つのvirtualenvを共有します。これは今のところ機能しています。
また、pipでインストールされたパッケージの状態を確認する小さなスクリプトを作成する必要がありました。更新がある場合、手動で適用する必要があります(ローカルのvirtualenvでローカルにテストするため、これは良いことです)。これは、当初よりもやや痛みがありますが、長期的にはずっと良くなります。
リポジトリからのパッケージ
これらは、アプリケーションが何らかの方法でUbuntuに固有である場合は常にインストールする必要があります。Ubuntuマシン全体にインストールできる安定したバージョンを保証します。サポートされており、pipで取得するものよりも成熟している場合があります。多数のubuntuサーバーをデプロイする場合、またはUbuntuアプリケーションを作成している場合は、使用可能な場合はこれらを使用します。
また、Ubuntu固有の変更が含まれることもあります。
pip vs easy_install
DjangoのハッカーJames Bennettが言ったように、それらについて言うことはあまりありません。
Guidoの愛のために、setuptoolsとeasy_installの使用をやめて、代わりにdistutilsとpipを使用してください。
違いについての詳細な議論については、James Bennettによるパッケージングについて(djangoの)およびIan Bickingによる「パッケージングについてのいくつかの修正」(mozillaの)を参照してください。
安全にしたい場合は、virtualenvを使用してpipデプロイメントを試してください。これにより、孤立したpython環境が提供されるため、アプリがどのマシンでも実行できることを確認できます。
少し待ってください。一部の人々は私に反対すると信じています。