Ada beberapa argumen:
Gunakan Repositori / PPA karena mereka akan membuat Anda tetap stabil dan terkini dengan perbaikan keamanan.
Ini sebagian besar benar. Jika, misalnya, Anda menginstal python-django
seperti yang saya miliki, Anda mendapatkan pembaruan keamanan. Ini bagus karena Anda hanya harus tetap di atas apt tetapi Anda masih harus menguji hal-hal sebelum Anda mendorong pembaruan (meskipun pengujian harus baik-baik saja setiap kali).
Anda bisa membantah bahwa jika Anda menggunakan pip
, Anda mungkin tidak pernah memeriksa pembaruan.
Gunakan pip
sehingga Anda dapat menggunakan versi "stabil" yang tepat.
Tidak ada keraguan tentang itu: Repo tertinggal dari dunia nyata. Django adalah 2.0 tetapi repo untuk versi LTS Ubuntu (yang banyak orang pertahankan untuk server) Anda hanya mendapatkan 1,8 pada Ubuntu 16,4 lts dengan Python 2 tetapi masih mendapatkan pembaruan keamanan di dalamnya.
pip
memberi Anda yang terbaru setiap saat. Anda hanya perlu memperbaruinya sendiri.
Memutakhirkan pemasangan Python yang digunakan repo bisa menjadi mimpi buruk
Ketika Anda memutakhirkan Ubuntu ke versi berikutnya, itu meningkatkan banyak paket. Banyak hal berubah. Saya tahu di Django ini berarti Anda harus berhati-hati terhadap kode-tidak kompatibel, penghentian ... Tapi hal yang sama berlaku untuk semua kode Python lainnya.
Hal yang sama berlaku untuk pip
tetapi dengan pip
Anda bisa melakukan satu per satu. Anda tahu apa yang menyebabkan masalah sehingga Anda tahu di mana mencarinya untuk menemukan perbaikannya.
pip
+ virtualenv
memungkinkan Anda memisahkan berbagai hal
virtualenv
memungkinkan Anda memiliki lingkungan Python kecil yang portabel. Ini memungkinkan Anda untuk memiliki beberapa lingkungan Python berbeda yang berjalan berdampingan di mesin yang sama.
Hikmah yang jelas tampaknya untuk pemeliharaan karena Anda dapat mengelola lingkungan dengan cara yang sama seperti Anda mengelola kode. Bahkan menyimpan lingkungan di VCS juga ... tetapi Anda harus ingat bahwa memiliki dua belas yang berbeda virtualenv
berarti dua belas lingkungan yang perlu Anda periksa dan perbarui.
Sunting: Setelah serangkaian peningkatan mengerikan pada server untuk mendapatkannya dari Lucid ke Precise, saya telah beralih dari perpaduan Apt + pip (nr 1 dan 2) ke situasi pip + virtualenv (nr. 4) murni. Alih-alih memiliki satu virtualenv per situs, saya punya satu yang dibagikan antara selusin situs atau lebih. Ini berfungsi untuk saat ini.
Saya juga harus menulis skrip kecil yang memeriksa status paket yang diinstal dengan pip. Jika ada pembaruan saya harus menerapkannya secara manual (yang bagus karena saya mengujinya secara lokal, dalam virtualenv lokal). Ini semua masih sedikit lebih menyakitkan daripada yang awalnya tetapi jauh lebih baik dalam jangka panjang.