Mengapa saya harus menggunakan gelandangan jika saya menggunakan virtualenv?

Saya membaca pertanyaan ini Apakah saya perlu menggunakan virtualenv dengan Vagrant? tapi saya ingin tahu sebaliknya.

Saya memprogram dan menyebarkan ke lingkungan UNIX/Linux (masing-masing MAC OSX dan Ubuntu) dan saya menggunakan virtualenv untuk menjaga lingkungan tetap terisolasi.

Sebenarnya saya tidak pernah menemui masalah apa pun tetapi saya melihat beberapa orang dan banyak tutorial yang menyarankan untuk menggunakannya bersama-sama, dan saya bertanya-tanya apakah dan mengapa saya harus menggunakan gelandangan, adakah yang bisa menjelaskannya kepada saya?


person Jiloc    schedule 21.11.2014    source sumber


Jawaban (1)


Perbedaan antara virtualenv dan Vagrant adalah virtualenv hanya tentang instalasi Python terpisah sedangkan Vagrant adalah tentang keseluruhan mesin.

  • virtualenv mengisolasi interpreter Python dan dependensi Python pada satu mesin sehingga Anda dapat menginstal beberapa proyek Python secara berdampingan dengan dependensinya masing-masing. Tetapi untuk mesin lainnya, virtualenv tidak melakukan apa pun: Anda masih memiliki dependensi/paket global yang diinstal menggunakan manajer paket Mac OS X/Linux dan ini dibagikan di antara virtualenv.

  • Vagrant menentukan keseluruhan mesin: ini memungkinkan Anda menentukan distribusi Linux, paket yang akan diinstal, dan tindakan yang harus diambil untuk menginstal proyek. Jadi jika Anda ingin meluncurkan kotak Vagrant dengan beberapa proyek Python di mesin itu, Anda masih akan menggunakan virtualenv untuk memisahkan dependensi Python.

Misalnya, pengembang di Mac OS X dan pengembang di Ubuntu Linux dapat menggunakan virtualenv untuk tetap menginstal proyek Python mereka tetapi mereka harus menggunakan Vagrant untuk meluncurkan mesin yang sama secara lokal (misalnya, distribusi Linux yang cocok dengan server yang diterapkan) untuk menjalankan versi Linux yang sama persis dengan paket yang sama terinstal di dalamnya dan dengan instalasi proyek Python yang sama.

Jadi, untuk menjawab pertanyaan Anda, alasan menggunakan Vagrant adalah memungkinkan Anda membuat mesin secara lokal dengan paket yang sama terinstal sedangkan virtualenv hanya memperhatikan dependensi Python.

person Simeon Visser    schedule 21.11.2014
comment
Terima kasih atas penjelasan @Simeon - person Hasitha Prageeth; 17.05.2017