virtualenv
memungkinkan Anda untuk membuat instalasi Python khusus misalnya dalam subdirektori proyek Anda. Setiap proyek Anda dengan demikian dapat memiliki sendiri python
(atau bahkan beberapa) di bawah virtualenv masing-masing. Tidak masalah bagi beberapa / semua virtualenvs untuk bahkan memiliki versi yang sama python
(misalnya 2.7.16) tanpa konflik - mereka hidup secara terpisah dan tidak saling mengenal. Jika Anda ingin menggunakan salah satu dari python
itu, Anda harus melakukannya activate
(dengan menjalankan skrip yang akan sementara memodifikasi Anda PATH
untuk memastikan bahwa bin/
direktori virtualenv yang lebih dulu). Dari titik itu, panggilan python
(atau pip
dll.) Akan memanggil versi virtualenv sampai Anda deactivate
(yang mengembalikan PATH
).
pyenv
beroperasi pada skala yang lebih luas daripada virtualenv
- ia menyimpan daftar instalasi Python (dan dapat digunakan untuk menginstal yang baru) dan memungkinkan Anda untuk mengonfigurasi versi Python mana yang akan dijalankan ketika Anda menggunakan python
perintah. Kedengarannya mirip tetapi penggunaan praktis agak berbeda. Ia bekerja dengan menambahkan python
skrip shim ke Anda PATH
(secara permanen) dan kemudian memutuskan mana yang "nyata" python
untuk dipanggil. Anda bahkan dapat mengkonfigurasi pyenv untuk memanggil salah satu python virtualenv Anda (dengan menggunakan pyenv-virtualenv
plugin). Versi Python yang Anda instal menggunakan pyenv
go ke $(pyenv root)/versions/
direktori (secara default, root pyenv adalah ~ / .pyenv) jadi lebih 'global' daripada virtualenv. Biasanya, Anda tidak dapat menduplikasi versi Python yang diinstal melalui pyenv
, setidaknya melakukannya bukan ide utama.
Untuk membuat virtualenv dengan versi Python tertentu, Anda perlu memiliki versi itu di suatu tempat di sistem Anda (apakah itu pada PATH
atau tidak) dan pada dasarnya mengkloningnya ke dalam virtualenv yang baru dibuat. Tentu saja, salah satu cara untuk mendapatkan versi tertentu adalah menginstalnya melalui pyenv
. Setelah selesai, masing-masing virtualvv bebas untuk menyimpang dengan memasang modul (atau versi) yang berbeda ke dalamnya.
Pendeknya:
virtualenv
memungkinkan Anda untuk membuat instalasi python lokal dan independen dengan mengkloning dari yang sudah ada
pyenv
memungkinkan Anda untuk menginstal berbagai versi python secara bersamaan (baik di seluruh sistem atau hanya untuk pengguna lokal) dan kemudian memilih yang mana dari banyak ular sanca untuk dijalankan pada waktu tertentu (termasuk yang dibuat oleh virtualenv atau Anaconda)